<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!-- Copyright 1997 The Open Group, All Rights Reserved -->
<title>Glossary</title>
</head><body bgcolor=white>
<center>
<font size=2>
The Single UNIX &reg; Specification, Version 2<br>
Copyright &copy; 1997 The Open Group

</font></center><hr size=2 noshade><blockquote>
<center>
<h2><a name = "tag_004">&nbsp;</a>Glossary</h2>
</center>
<xref type="1" name="gloss"></xref>
<p>
<h4><a name = "tag_004_000_001">&nbsp;</a>absolute pathname</h4>See
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
<p>
<h4><a name = "tag_004_000_002">&nbsp;</a>access mode</h4>A particular form of access permitted to a file.
<p>
<h4><a name = "tag_004_000_003">&nbsp;</a>additional file access control mechanism</h4>See
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
<p>
<h4><a name = "tag_004_000_004">&nbsp;</a>address space</h4>The memory locations that can be referenced by a process or the 
threads of a process.
<p>
<h4><a name = "tag_004_000_005">&nbsp;</a>affirmative response</h4>An input string that matches one of the responses
acceptable to the LC_MESSAGES category keyword
<b>yesexpr</b>,
matching an extended regular expression
in the current locale;
see
<xref href=lc_messages><a href="locale.html#tag_005_003_006">
LC_MESSAGES
</a></xref>.
<p>
<h4><a name = "tag_004_000_006">&nbsp;</a>alert</h4>To cause the user's terminal to give some audible
or visual indication that an error or some other event has occurred.
When the standard output is directed to a terminal device,
the method for alerting the terminal user is unspecified.
When the standard output is not directed to a terminal device,
the alert is accomplished by writing the
alert
character to standard output (unless the utility
description indicates that the use of standard output
produces undefined results in this case).
<p>
<h4><a name = "tag_004_000_007">&nbsp;</a>alert character</h4>A character that in the output stream
should cause a terminal to alert its
user via a visual or audible notification.
The
alert character
is the character designated by
'\a'
in the C language.
It is unspecified whether this character is the exact
sequence transmitted to an output device by the system to accomplish the
alert function.
<p>
<h4><a name = "tag_004_000_008">&nbsp;</a>alias name</h4>A word consisting solely of underscores, digits and alphabetics
from the portable character set (see
<xref href=charset><a href="charset.html#tag_001_001">
Portable Character Set
</a></xref>)
and any of the following characters:
<pre>
<dl compact><dt> <dd>
!    %    ,    @
</dl>
</pre>
<p>
Implementations may allow other characters within alias names
as an extension.
<p>
<h4><a name = "tag_004_000_009">&nbsp;</a>alternate file access control mechanism</h4>See
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
<p>
<h4><a name = "tag_004_000_010">&nbsp;</a>alternate signal stack</h4>Memory associated with a thread, established upon request by the
implementation for a thread, separate from the thread signal stack, in which
signal handlers responding to signals sent to that thread may be executed.
<p>
<h4><a name = "tag_004_000_011">&nbsp;</a>angle brackets</h4>The characters "&lt;" (left-angle-bracket) and "&gt;" (right-angle-bracket).
When used in the phrase &quot;enclosed in angle brackets&quot;, the symbol
"&lt;" immediately precedes the object to be enclosed, and "&gt;"
immediately follows it.
When describing these characters in
the portable character set,
the names
&lt;less-than-sign&gt;
and
&lt;greater-than-sign&gt;
are used.
<p>
<h4><a name = "tag_004_000_012">&nbsp;</a>appropriate privileges</h4><xref type="11" name="appropriv"></xref>
An implementation-dependent means of associating privileges with a
process
with regard to the function calls and function call options
defined in the <b>XSH</b> specification, and the commands in the <b>XCU</b> specification,
that need special privileges.
There may be zero
or more such means.
<p>
<h4><a name = "tag_004_000_013">&nbsp;</a>argument</h4>In the shell,
a parameter passed to a utility as the equivalent of a single string in the
<i>argv</i>
array created by one of the
<i>exec</i>
functions.
See
<xref href=utilarg><a href="utilconv.html#tag_009_001">
Utility Argument Syntax
</a></xref>
and
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001_001"><b>Command Search and Execution</b>&nbsp;</a>.
An argument is one of the
options, option-arguments or operands following the command name.
<p>
In the C language, an expression in a function call
expression or a sequence of preprocessing tokens in a
function-like macro invocation.
<p>
<h4><a name = "tag_004_000_014">&nbsp;</a>arm (a timer)</h4>To start a timer
measuring the passage of time, enabling notifying a
process when the specified time or time interval has passed.
<p>
<h4><a name = "tag_004_000_015">&nbsp;</a>assignment</h4>See
<xref href=varassign><a href="#tag_004_000_322">
variable assignment
</a></xref>.
<p>
<h4><a name = "tag_004_000_016">&nbsp;</a>asterisk</h4>The character "*".
<p>
<h4><a name = "tag_004_000_017">&nbsp;</a>async-cancel safe function</h4>A function that may be safely invoked by an application
while the asynchronous form of cancellation is enabled.
No function is async-cancel-safe unless explicitly described as such.
<p>
<h4><a name = "tag_004_000_018">&nbsp;</a>async-signal safe function</h4>A function that may be invoked, without restriction,
from signal-catching functions.
No function is async-signal safe
unless explicitly described as such.
<p>
<h4><a name = "tag_004_000_019">&nbsp;</a>asynchronously generated signal</h4>A signal that is not attributable to a specific thread.
Examples are:
signals sent via
<i><a href="../xsh/kill.html">kill()</a></i>,
signals sent from the keyboard,
and signals delivered to process groups.
Being asynchronous is a property of how the signal was generated
and not a property of the signal number.
All signals may be generated asynchronously.
<p>
<h4><a name = "tag_004_000_020">&nbsp;</a>asynchronous I/O operation</h4>An I/O operation that does not of itself cause the thread
requesting the I/O to be blocked from further use of the processor.
<p>
This implies that the process and the I/O operation may be running
concurrently.
<p>
<h4><a name = "tag_004_000_021">&nbsp;</a>asynchronous I/O completion</h4>For an asynchronous read or write operation,
when a corresponding synchronous read or write would have completed
and when any associated status fields have been updated.
<p>
<h4><a name = "tag_004_000_022">&nbsp;</a>background job</h4>See
<xref href=bgprocgrp><a href="#tag_004_000_024">
background process group
</a></xref>.
<p>
<h4><a name = "tag_004_000_023">&nbsp;</a>background process</h4>A process that is a member of a background process group.
<p>
<h4><a name = "tag_004_000_024">&nbsp;</a>background process group</h4><xref type="11" name="bgprocgrp"></xref>
(Or <b>background job</b>.)
Any process group, other than a foreground process group,
that is a member of a session that has established a connection with a
controlling terminal.
<p>
<h4><a name = "tag_004_000_025">&nbsp;</a>backquote</h4>The character
`,
also known as a
<i>grave accent</i>.
<p>
<h4><a name = "tag_004_000_026">&nbsp;</a>backslash</h4>The character "\", also known as a
<i>reverse solidus</i>.
<p>
<h4><a name = "tag_004_000_027">&nbsp;</a>backspace character</h4>A character that,
in the output stream, should cause printing (or displaying)
to occur one column position previous to
the position about to be printed.
If the position about to be printed is at the
beginning of the current line, the behaviour is unspecified.
The
backspace
is the
character designated by
'\b'
in the C language.
It is unspecified whether
this character is the exact sequence transmitted to an output device by
the system to accomplish the backspace function.
The
backspace
character defined
here is not necessarily the ERASE special character defined in
<xref href=specchar><a href="termios.html#tag_008_001_009">
Special Characters
</a></xref>.
<p>
<h4><a name = "tag_004_000_028">&nbsp;</a>base character</h4>One of the set of characters defined in the Latin alphabet.
In Western European languages other than English,
these characters are commonly
used with diacritical marks (accents, cedilla, and so on) to
extend the range of characters in an alphabet.
<p>
<h4><a name = "tag_004_000_029">&nbsp;</a>basename</h4>The final, or only, filename in a pathname.
<p>
<h4><a name = "tag_004_000_030">&nbsp;</a>basic regular expression</h4>A pattern constructed according to
the rules defined in
<xref href=bre><a href="re.html#tag_007_003">
Basic Regular Expressions
</a></xref>.
<p>
<h4><a name = "tag_004_000_031">&nbsp;</a>blank character</h4>One of the characters that belong to the
<b>blank</b>
character class
as defined via the
LC_CTYPE
category in the current locale.
In the POSIX locale, a
blank character
is either a
tab
or a
space character.
<p>
<h4><a name = "tag_004_000_032">&nbsp;</a>blank line</h4><xref type="11" name="blankline"></xref>
A line consisting solely of zero or more
blank characters
terminated by a
newline character.
See also
<xref href=emptyline><a href="#tag_004_000_090">
empty line
</a></xref>.
<p>
<h4><a name = "tag_004_000_033">&nbsp;</a>blocked process (or thread)</h4>A process (or thread) that is waiting for some condition (other than the 
availability of a processor)
to be satisfied before it can continue execution.
<p>
<h4><a name = "tag_004_000_034">&nbsp;</a>block-mode terminal</h4>A terminal device operating in a mode incapable of the
character-at-a-time input and output operations
described by some of the standard utilities.
See
<xref href=termchar><a href="files.html#tag_003_002">
Output Devices and Terminal Types
</a></xref>.
<p>
<h4><a name = "tag_004_000_035">&nbsp;</a>block special file</h4>A file that refers to a device.
A block special file is normally distinguished from a
character special file by providing access to the device
in a manner such that the hardware characteristics of the
device are not visible.
<p>
<h4><a name = "tag_004_000_036">&nbsp;</a>braces</h4>The characters "{" (left brace) and "}" (right brace),
also known as
<i>curly braces</i>.
When used in the phrase &quot;enclosed in (curly) braces&quot; the symbol
"{" immediately precedes the object to be enclosed, and "}"
immediately follows it.
When describing these characters in
the portable character set,
the names
&lt;left-brace&gt;
and
&lt;right-brace&gt;
are used.
<p>
<h4><a name = "tag_004_000_037">&nbsp;</a>brackets</h4>The characters "[" (left-bracket) and "]" (right-bracket),
also known as
<i>square brackets</i>.
When used in the phrase &quot;enclosed in (square) brackets&quot; the symbol
"[" immediately precedes the object to be enclosed, and "]"
immediately follows it.
When describing these characters in
the portable character set,
the names
&lt;left-square-bracket&gt;
and
&lt;right-square-bracket&gt;
are used.
<p>
<h4><a name = "tag_004_000_038">&nbsp;</a>break value</h4>The address at which dynamic memory allocation starts.
<p>
<h4><a name = "tag_004_000_039">&nbsp;</a>built-in utility</h4>(Or <b>built-in</b>.)
A utility implemented within a shell.
The utilities referred to as
<i>special built-ins</i>
have special qualities, described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_014"><b>Special Built-in Utilities</b>&nbsp;</a>.
Unless qualified, the term
<i>built-in</i>
includes the special built-in utilities.
The utilities referred to as
<i>regular built-ins</i>
are those named in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001_001"><b>Command Search and Execution</b>&nbsp;</a>.
There is no requirement that these utilities
be actually built into the shell on the implementation,
but they do have special command-search qualities.
<p>
<h4><a name = "tag_004_000_040">&nbsp;</a>byte</h4>An individually addressable
unit of data storage that is equal to or larger than an octet,
used to store a character or a portion of a character; see
<xref href=character><a href="#tag_004_000_042">
character
</a></xref>.
A byte is composed of a contiguous sequence of bits,
the number of which is implementation-dependent.
The least significant bit is called the
<i>low-order</i>
bit;
the most significant is called the
<i>high-order</i>
bit.
Note that
this definition of
<i>byte</i>
deviates intentionally from the usage of
<i>byte</i>
in some international standards, where it is used as a synonym for
<i>octet</i>
(always eight bits).
On a system based on the ISO/IEC 9945-2:1993 standard, a byte may be larger than eight bits
so that it can be an integral portion of larger data objects
that are not evenly divisible by eight bits (such as a
36-bit word that contains four 9-bit bytes).
<p>
<h4><a name = "tag_004_000_041">&nbsp;</a>carriage-return character</h4>A character
that in the output stream indicates that
printing should start at the beginning
of the same physical line in which the
carriage-return character occurred.
The carriage-return
is the character designated by
'\r'
in the C language.
It is unspecified whether
this character is the exact sequence transmitted to an output device by
the system to accomplish the movement to the beginning of the line.
<p>
<h4><a name = "tag_004_000_042">&nbsp;</a>character</h4><xref type="11" name="character"></xref>
A sequence of one or more bytes representing a single
graphic symbol or control code.
This term corresponds to the ISO&nbsp;C standard term
<i>multibyte character</i> (multi-byte character),
where a single-byte character is a special case of a
multi-byte character.
Unlike the usage in the ISO&nbsp;C standard,
<i>character</i>
here has no necessary relationship with storage space, and
<i>byte</i>
is used when storage space is discussed.
<p>
See
<xref href=charset><a href="charset.html#tag_001_001">
Portable Character Set
</a></xref>
for a further explanation of the graphical
representations of characters, or <i>glyphs</i>,
as opposed to character encodings.
<p>
<h4><a name = "tag_004_000_043">&nbsp;</a>character array</h4>An array of type
<b>char</b>.
<p>
<h4><a name = "tag_004_000_044">&nbsp;</a>character class</h4>A named set of characters
sharing an attribute associated
with the name of the class.
The classes and the characters
that they contain are dependent on the value of the
LC_CTYPE category in the current locale;
see
<xref href=lc_ctype><a href="locale.html#tag_005_003_001">
LC_CTYPE
</a></xref>.
<p>
<h4><a name = "tag_004_000_045">&nbsp;</a>character set</h4>A finite set of different characters used for the representation,
organisation or control of data.
<p>
<h4><a name = "tag_004_000_046">&nbsp;</a>character special file</h4>A file that refers to a device.
One specific type of character special file is a terminal device file,
whose access is defined in
<xref href=genterm><a href="termios.html#tag_008">
General Terminal Interface
</a></xref>.
<p>
<h4><a name = "tag_004_000_047">&nbsp;</a>character string</h4>A contiguous sequence of characters terminated by and including
the first null byte.
<p>
<h4><a name = "tag_004_000_048">&nbsp;</a>child process</h4>See
<xref href=processdef><a href="#tag_004_000_216">
process
</a></xref>.
<p>
<h4><a name = "tag_004_000_049">&nbsp;</a>circumflex</h4>The character "^".
<p>
<h4><a name = "tag_004_000_050">&nbsp;</a>clock</h4>An object that measures the passage of time.
<p>
The current value of the time measured by a
clock can be queried and, possibly,
set to a value within the legal range of the clock.
<p>
<h4><a name = "tag_004_000_051">&nbsp;</a>clock tick</h4>An interval of time; an implementation-dependent number of these
occur each second.
<p>
<h4><a name = "tag_004_000_052">&nbsp;</a>coded character set</h4>A set of unambiguous rules that establishes a character set
and the one-to-one relationship between each character of the set
and its bit representation.
<p>
<h4><a name = "tag_004_000_053">&nbsp;</a>codeset</h4>The result of applying rules that map a numeric code value to each element of
a character set.  An element of a character set may be related to more than
one numeric code value but the reverse is not true.  However, for
state-dependent encodings the relationship between numeric code values to
elements of a character set may be further
controlled by state information; see
<xref href=char_enc><a href="charset.html#tag_001_002">
Character Encoding
</a></xref>.
The character set may contain fewer elements than the total number of
possible numeric code values; that is, some code values may be unassigned.
<p>
<h4><a name = "tag_004_000_054">&nbsp;</a>collating element</h4>The smallest entity used to determine the logical ordering of
character or wide-character strings.
See
<xref href=collseq><a href="#tag_004_000_056">
collation sequence
</a></xref>.
A collating element consists of either
a single character, or two or
more characters collating as a single entity.
The value of the LC_COLLATE
category in the current locale determines
the current set of collating elements.
<p>
<h4><a name = "tag_004_000_055">&nbsp;</a>collation</h4>The logical ordering of
character or wide-character strings
according to defined precedence rules.
These rules identify a collation sequence
between the collating elements,
and such additional rules that can be used to order strings
consisting of multiple collating elements.
<p>
<h4><a name = "tag_004_000_056">&nbsp;</a>collation sequence</h4><xref type="11" name="collseq"></xref>
The relative order of collating elements
as determined by the setting of the
LC_COLLATE category in the current locale.
The character order, as defined for the LC_COLLATE category
in the current locale,
defines the relative order
of all collating elements, such that each element occupies
a unique position in the order.
This is the order used in ranges of characters and
collating elements in regular expressions and pattern matching.
In addition, the definition of the collating
weights of characters and collating elements
uses collating elements to represent their
respective positions within the collation sequence.
<p>
Multi-level sorting is accomplished by assigning elements one or more
collation weights, up to the limit
{COLL_WEIGHTS_MAX};
see
<i><a href="../xsh/limits.h.html">&lt;limits.h&gt;</a></i>.
On each level,
elements may be given the same weight
(at the primary level, called an
equivalence class; see
<xref href=equivclass><a href="#tag_004_000_094">
equivalence class
</a></xref>)
or be omitted from the sequence.
Strings that collate equal using the
first assigned weight (primary ordering) are then compared using
the next assigned weight (secondary ordering), and so on.
<p>
<h4><a name = "tag_004_000_057">&nbsp;</a>column position</h4><xref type="11" name="colpos"></xref>
A unit of horizontal measure related to characters in a line.
<p>
It is assumed that each character in a character set has an intrinsic
column width independent of any output device.
Each printable character in
the portable character set has a column width of one.
The standard utilities, when used as described in this specification set,
assume that all characters have integral column widths.
The column width of a character
is not necessarily related to the internal representation
of the character (numbers of bits or
bytes).
<p>
The column position of a character in a line is defined as one plus
the sum of the column widths of the preceding characters in the line.
Column positions are numbered starting from 1.
<p>
<h4><a name = "tag_004_000_058">&nbsp;</a>command</h4>A directive to the shell to perform a particular task;
see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009"><b>Shell Commands</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_059">&nbsp;</a>command language interpreter</h4>An interface that interprets sequences of text input as commands.
It may operate on an input stream
or it may interactively prompt and read commands from a terminal.
It is possible for applications to invoke utilities through a number of
interfaces, which are collectively considered to act as command interpreters.
The most obvious of these are the
<i><a href="../xcu/sh.html">sh</a></i>
utility and the
<i><a href="../xsh/system.html">system()</a></i>
function, although
<i><a href="../xsh/popen.html">popen()</a></i>
and the various forms of
<i>exec</i>
may also be considered to behave as interpreters.
<p>
<h4><a name = "tag_004_000_060">&nbsp;</a>composite graphic symbol</h4>A graphic symbol consisting of a combination of two or more
other graphic symbols in a single character position,
such as a diacritical mark and a basic letter.
<p>
<h4><a name = "tag_004_000_061">&nbsp;</a>condition variable</h4>A synchronization object which
allows a thread to suspend execution, repeatedly,
until some associated predicate becomes true.
<p>
<h4><a name = "tag_004_000_062">&nbsp;</a>control character</h4>A character, other than a graphic character,
that affects the recording,
processing, transmission or interpretation of text.
<br>
<p>
<h4><a name = "tag_004_000_063">&nbsp;</a>control operator</h4>In the shell,
a token that performs a control function.
It is one of the following symbols:
<code>
<pre>
&amp;   &amp;&amp;   (   )   ;   ;;   newline   |   ||
</code>
</pre>
<p>
The end-of-input indicator used internally by the shell
is also considered a control operator.
See
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_003"><b>Token Recognition</b>&nbsp;</a>.
<p>
On some systems, the symbol
<b>((</b>
is a control operator;
its use produces unspecified results.
Applications that wish to have nested subshells, such as:
<code>
<pre>
((echo Hello);(echo World))
</code>
</pre>
must separate the
<b>((</b>
characters into two tokens by including white space between them.
Some systems may treat these as invalid arithmetic expressions
instead of subshells.
<p>
The
<b>((</b>
and
<b>))</b>
symbols are control operators in the KornShell,
used for an alternative syntax of an arithmetic expression command.
A portable application cannot use
<b>((</b>
as a single token
(with the exception of the
<b>$((</b>
form for shell arithmetic).
<p>
<h4><a name = "tag_004_000_064">&nbsp;</a>controlling process</h4>The session leader that established the connection to the
controlling terminal.
If the terminal ceases to be a controlling terminal for this session,
the session leader ceases to be the controlling process.
<p>
<h4><a name = "tag_004_000_065">&nbsp;</a>controlling terminal</h4>A terminal that is associated with a session.
Each session may have at most one controlling terminal associated with it,
and a controlling terminal is associated with exactly one session.
Certain input sequences from the controlling terminal (see
<xref href=genterm><a href="termios.html#tag_008">
General Terminal Interface
</a></xref>)
cause signals to be sent to all processes in the process group
associated with the controlling terminal.
<p>
<h4><a name = "tag_004_000_066">&nbsp;</a>conversion descriptor</h4>A per-process unique value
used to identify an open codeset conversion.
<p>
<h4><a name = "tag_004_000_067">&nbsp;</a>core file</h4>A file of unspecified format that may be generated when a process terminates
abnormally.
<p>
<h4><a name = "tag_004_000_068">&nbsp;</a>current working directory</h4>See
<xref href=workdir><a href="#tag_004_000_328">
working directory
</a></xref>.
<p>
<h4><a name = "tag_004_000_069">&nbsp;</a>cursor position</h4>The line and column position on the screen denoted by the terminal's cursor.
<p>
<h4><a name = "tag_004_000_070">&nbsp;</a>data segment</h4>Memory associated with a process, that may be used to contain dynamically
allocated data.
<p>
<h4><a name = "tag_004_000_071">&nbsp;</a>device</h4>A computer peripheral or an object that appears to the application as such.
<p>
<h4><a name = "tag_004_000_072">&nbsp;</a>device ID</h4>A non-negative integer used to identify a device.
<p>
<h4><a name = "tag_004_000_073">&nbsp;</a>direct I/O</h4>An operation that attempts to circumvent a system performance
optimization for the optimization of the individual I/O operation.
<p>
<h4><a name = "tag_004_000_074">&nbsp;</a>directory</h4>A file that contains directory entries.
No two directory entries in the same directory have the same name.
<p>
<h4><a name = "tag_004_000_075">&nbsp;</a>directory entry</h4><xref type="11" name="direntry"></xref>
(Or <b>link</b>.)
An object that associates a filename with a file.
Several directory entries can associate names with the same file.
<p>
<h4><a name = "tag_004_000_076">&nbsp;</a>directory stream</h4>A sequence of all the directory entries in a particular directory.
An open directory stream
may be implemented using a file descriptor.
<p>
<h4><a name = "tag_004_000_077">&nbsp;</a>disarm (a timer)</h4>To stop a timer from measuring the passage of time,
disabling any future process notifications (until the timer is armed 
again).
<p>
<h4><a name = "tag_004_000_078">&nbsp;</a>display</h4><xref type="11" name="display"></xref>
To output to the user's terminal.
If the output is not directed to a terminal,
the results are undefined.
<p>
The <b>XCU</b> specification assigns precise requirements for the terms
<i>display</i>
and
<i>write</i>.
Some historical systems have chosen to implement
certain utilities without using the traditional
UNIX system file descriptor model.
For example, the
<i><a href="../xcu/vi.html">vi</a></i>
editor might employ direct screen memory updates
on a personal computer, rather than a
<i><a href="../xsh/write.html">write()</a></i>
system call.
An instance of user prompting might appear in
a dialogue box, rather than with standard error.
When the <b>XCU</b> specification uses the term
<i>display,</i>
the method of outputting to the terminal is unspecified; many
historical implementations use
<i>termcap</i>
or
<i>terminfo</i>,
but this is not a requirement.
The term
<i>write</i>
is used when the <b>XCU</b> specification mandates that
a file descriptor be used and that the output can be redirected.
However, it is assumed that when the writing is directly
to the terminal (it has not been redirected elsewhere),
there is no practical way for a user or test suite to
determine whether a file descriptor is being used or not.
Therefore, the use of a file descriptor is mandated
only for the redirection case and the implementation
is free to use any method when the output is not redirected.
The verb
<i>write</i>
is used almost exclusively, with the very few exceptions of
those utilities where output redirection need not be supported:
<i><a href="../xcu/tabs.html">tabs</a></i>,
<i><a href="../xcu/talk.html">talk</a></i>,
<i><a href="../xcu/tput.html">tput</a></i>
and
<i><a href="../xcu/vi.html">vi</a></i>.
<p>
<h4><a name = "tag_004_000_079">&nbsp;</a>dollar sign</h4><xref type="11" name="dollarsign"></xref>
The character "$".
<p>
<h4><a name = "tag_004_000_080">&nbsp;</a>dot</h4>The filename consisting of a single dot character (.).
See
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
In the context of shell special built-in utilities, see
<i><a href="../xcu/chap2.html#tag_001_014_004">dot</a></i>
in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_014"><b>Special Built-in Utilities</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_081">&nbsp;</a>dot-dot</h4>The filename consisting solely of two dot characters (..).
See
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
<p>
<h4><a name = "tag_004_000_082">&nbsp;</a>double-quote</h4>The character """, also known as
<i>quotation-mark</i>.
<p>
<h4><a name = "tag_004_000_083">&nbsp;</a>downshifting</h4>The conversion of an upper-case character to its
lower-case representation.
<p>
<h4><a name = "tag_004_000_084">&nbsp;</a>(clock) drift rate</h4>The rate at which the time measured by a clock
deviates from the actual passage of real time.
<p>
A positive drift rate causes a clock to gain time with respect 
to real time;
a negative drift rate causes a clock to lose time with respect 
to real time.
<p>
<h4><a name = "tag_004_000_085">&nbsp;</a>driver</h4>A module that controls data transferred to and received from peripheral
devices.  Drivers are traditionally written to be a part of the system
implementation, although they are frequently written separately from the
writing of the implementation.  A driver may contain processor-specific code,
and therefore be non-portable.
<p>
<h4><a name = "tag_004_000_086">&nbsp;</a>effective group ID</h4>An attribute of a process that is used in determining
various permissions, including file access permissions, described in
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
See
<xref href=groupid><a href="#tag_004_000_132">
group ID
</a></xref>.
This value is subject to change during the process lifetime,
as described in the
<i>exec</i>
family of functions and
<i><a href="../xsh/setgid.html">setgid()</a></i>.
<p>
<h4><a name = "tag_004_000_087">&nbsp;</a>effective user ID</h4>An attribute of a process that is used in determining
various permissions, including file access permissions.
See
<xref href=userid><a href="#tag_004_000_318">
user ID
</a></xref>.
This value is subject to change during the
process lifetime,
as described in
<i>exec</i>
and
<i><a href="../xsh/setuid.html">setuid()</a></i>.
<p>
<h4><a name = "tag_004_000_088">&nbsp;</a>eight-bit transparency</h4>The ability of a software component to process 8-bit
characters without modifying or utilising any part of the
character in a way that is inconsistent with the rules of the
current coded character set.
<p>
<h4><a name = "tag_004_000_089">&nbsp;</a>empty directory</h4>A directory that contains, at most,
directory entries for dot and dot-dot.
<p>
<h4><a name = "tag_004_000_090">&nbsp;</a>empty line</h4><xref type="11" name="emptyline"></xref>
A line consisting of only a
newline
character.
See also
<xref href=blankline><a href="#tag_004_000_032">
blank line
</a></xref>.
<p>
<h4><a name = "tag_004_000_091">&nbsp;</a>empty string</h4><xref type="11" name="emptystr"></xref>
(Or <b>null string</b>.)
A string whose first byte is a null byte.
<p>
<h4><a name = "tag_004_000_092">&nbsp;</a>empty wide-character string</h4>A wide-character string whose first element is a
null wide-character code.
<p>
<h4><a name = "tag_004_000_093">&nbsp;</a>epoch</h4>The time zero hours, zero minutes, zero seconds, on January 1, 1970
Coordinated Universal Time.
See
<xref href=secsepoch><a href="#tag_004_000_255">
seconds since the epoch
</a></xref>.
<p>
<h4><a name = "tag_004_000_094">&nbsp;</a>equivalence class</h4><xref type="11" name="equivclass"></xref>
A set of collating elements with the same
primary collation weight.
<p>
Elements in an equivalence class are typically elements
that naturally group together, such as all accented letters based on
the same base letter.
<p>
The collation order of elements within an equivalence class is determined by
the weights assigned on any subsequent levels after the primary weight.
<p>
<h4><a name = "tag_004_000_095">&nbsp;</a>era</h4>An alternative method for counting and displaying years.
See
<xref href=lc_time><a href="locale.html#tag_005_003_005">
LC_TIME
</a></xref>.
<p>
<h4><a name = "tag_004_000_096">&nbsp;</a>executable file</h4>A regular file acceptable as a new process image file
by the equivalent of the
<i>exec</i>
family of functions, and thus usable as one form of a utility.
The standard utilities described as compilers can produce
executable files, but other unspecified methods
of producing executable files may also be provided.
The internal format of an executable file is unspecified, but a conforming
application cannot assume an executable file is a text file.
<p>
<h4><a name = "tag_004_000_097">&nbsp;</a>execute</h4><xref type="11" name="execute"></xref>
To perform the actions described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001_001"><b>Command Search and Execution</b>&nbsp;</a>.
See also
<xref href=invoke><a href="#tag_004_000_141">
invoke
</a></xref>.
<p>
<h4><a name = "tag_004_000_098">&nbsp;</a>expand</h4>In the shell,
when not qualified, the act of applying all the expansions
described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006"><b>Word Expansions</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_099">&nbsp;</a>extended regular expression</h4>A pattern constructed according to the rules defined in
<xref href=ere><a href="re.html#tag_007_004">
Extended Regular Expressions
</a></xref>.
<p>
<h4><a name = "tag_004_000_100">&nbsp;</a>extended signed integral type</h4>A signed integral type or an implementation-dependent type with similar
properties.
<p>
<h4><a name = "tag_004_000_101">&nbsp;</a>extended security controls</h4>The access control (see
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>)
and privilege (see
<xref href=appropriv><a href="#tag_004_000_012">
appropriate privileges
</a></xref>)
mechanisms have been defined to allow implementation-dependent
extended security controls.
These permit an implementation to provide
security mechanisms to
support different security policies
from those described in this specification set.
These mechanisms do not alter or override the defined
semantics of any of the functions or utilities in this specification set.
<p>
<h4><a name = "tag_004_000_102">&nbsp;</a>extended unsigned integral type</h4>An unsigned integral type or an implementation-dependent type with
similar properties.
<p>
<h4><a name = "tag_004_000_103">&nbsp;</a>feature test macro</h4>A macro used to determine whether a particular
set of features will be included from a header.
See
the <b>XSH</b> specification, <a href="../xsh/compilation.html"><b>The Compilation Environment</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_104">&nbsp;</a>field</h4>In the shell,
a unit of text that is the result of parameter expansion (see the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_002"><b>Parameter Expansion</b>&nbsp;</a>),
arithmetic expansion (see the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_004"><b>Arithmetic  Expansion</b>&nbsp;</a>),
command substitution (see the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_003"><b>Command  Substitution</b>&nbsp;</a>),
or field splitting (see the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_005"><b>Field Splitting</b>&nbsp;</a>).
During command processing (see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001"><b>Simple Commands</b>&nbsp;</a>),
the resulting fields are used as the command name and its arguments.
<p>
<h4><a name = "tag_004_000_105">&nbsp;</a>FIFO special file</h4>(Or <b>FIFO</b>.)
A type of file with the property that
data written to such a file
is read on a first-in-first-out basis.
Other characteristics of FIFOs
are described in
<i><a href="../xsh/open.html">open()</a></i>,
<i><a href="../xsh/read.html">read()</a></i>,
<i><a href="../xsh/write.html">write()</a></i>
and
<i><a href="../xsh/lseek.html">lseek()</a></i>.
<p>
<h4><a name = "tag_004_000_106">&nbsp;</a>file</h4><xref type="11" name="filedef"></xref>
An object that can be written to, or read from, or both.
A
file
has certain attributes, including access permissions and type.
File types include
regular file,
character special file,
block special file,
FIFO special file and directory.
Other types of files may be supported by the implementation.
<p>
<h4><a name = "tag_004_000_107">&nbsp;</a>file access permissions</h4><xref type="11" name="fileaccperm"></xref>
The standard file access control mechanism uses the
file permission bits,
as described below.
These bits are set at
the time of file creation by
functions such as
<i><a href="../xsh/open.html">open()</a></i>,
<i><a href="../xsh/creat.html">creat()</a></i>,
<i><a href="../xsh/mkdir.html">mkdir()</a></i>
and
<i><a href="../xsh/mkfifo.html">mkfifo()</a></i>
and are changed by
<i><a href="../xsh/chmod.html">chmod()</a></i>.
These bits are read by
<i><a href="../xsh/stat.html">stat()</a></i>
or
<i><a href="../xsh/fstat.html">fstat()</a></i>.
<p>
Implementations may provide
<i>additional</i>
or
<i>alternate</i>
file access control mechanisms, or both.
An additional access control mechanism will only
further restrict the access permissions defined by the
file permission bits.
An alternate file access control mechanism will:
<ul>
<p>
<li>
specify file permission bits for the
file owner class, file group class, and file other class
of that file, corresponding to the access permissions, to be
returned by
<i><a href="../xsh/stat.html">stat()</a></i>
or
<i><a href="../xsh/fstat.html">fstat()</a></i>
<p>
<li>
be enabled only by explicit user action, on a per-file basis
by the file owner or a user with the appropriate privilege
<p>
<li>
be disabled for a file after the file permission bits
are changed for that file with
<i><a href="../xsh/chmod.html">chmod()</a></i>.
The disabling of the alternate mechanism need not disable any additional
mechanisms supported by an implementation.
<p>
</ul>
<p>
Whenever a process requests
file access permission
for read, write
or execute/search, if no additional mechanism denies access, access is
determined as follows:
<ul>
<p>
<li>
If a process has the
appropriate privilege:
<ul>
<p>
<li>
If read, write or directory search permission is requested,
access is granted.
<p>
<li>
If execute permission is requested, access is granted if
execute permission is granted to at least one user by the
file permission bits
or by an alternate access control
mechanism; otherwise, access is denied.
<p>
</ul>
<p>
<li>
Otherwise:
<ul>
<p>
<li>
The file permission bits of a file
contain read, write and execute/search permissions for the
file owner class, file group class and file other class.
<p>
<li>
Access is granted if an alternate access control mechanism is
not enabled and the requested access permission bit is set for the class
(file owner class, file group class, or file other class)
to which the process belongs,
or if an alternate access
control mechanism is enabled and it allows the requested
access; otherwise, access is denied.
<p>
</ul>
<p>
</ul>
<p>
<h4><a name = "tag_004_000_108">&nbsp;</a>file description</h4>See
<xref href=openfiledes><a href="#tag_004_000_184">
open file description
</a></xref>.
<p>
<h4><a name = "tag_004_000_109">&nbsp;</a>file descriptor</h4>A per-process unique, non-negative integer
used to identify an open file for the purpose of file access.
The value of a file descriptor is from zero to
{OPEN_MAX}.
A process can have no more than
{OPEN_MAX}
file descriptors open simultaneously.
File descriptors may also be
used to implement
message catalogue descriptors and
directory streams.
See
<xref href=openfiledes><a href="#tag_004_000_184">
open file description
</a></xref>
and
{OPEN_MAX}
in
<i><a href="../xsh/limits.h.html">&lt;limits.h&gt;</a></i>.
<p>
<h4><a name = "tag_004_000_110">&nbsp;</a>file group class</h4>The property of a file indicating access permissions
for a process related to the group identification of a process.
A process is in the file group class
of a file if the process is not in the
file owner class and if the effective group ID
or one of the supplementary group IDs
of the process matches the group ID
associated with the file.
Other members of the class may be implementation-dependent.
<p>
<h4><a name = "tag_004_000_111">&nbsp;</a>file hierarchy</h4>Files in the system are organised in a hierarchical structure in which
all of the non-terminal nodes are directories and all of the terminal
nodes are any other type of file.
Because multiple directory entries may refer to the same file, the
hierarchy is properly described as a
<i>directed graph.</i>
<p>
<h4><a name = "tag_004_000_112">&nbsp;</a>file mode</h4>An object containing the
<i>file mode bits</i>
and file type of a file, as described in
<i><a href="../xsh/sysstat.h.html">&lt;sys/stat.h&gt;</a></i>.
<p>
<h4><a name = "tag_004_000_113">&nbsp;</a>file mode bits</h4>A file's file permission bits,
set-user-ID-on-execution bit
(S_ISUID)
and set-group-ID-on-execution bit
(S_ISGID);
see
<i><a href="../xsh/sysstat.h.html">&lt;sys/stat.h&gt;</a></i>.
<p>
<h4><a name = "tag_004_000_114">&nbsp;</a>filename</h4><xref type="11" name="filename"></xref>
A name consisting of 1 to
{NAME_MAX}
bytes used to name a file.
The characters composing the name
may be selected from the set of all
character values excluding the
slash character and the null byte.
The filenames dot and dot-dot have special meaning;
see
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
A
filename
is sometimes referred to as a
<i>pathname component</i>.
<p>
Filenames should be constructed from the
portable filename character set
because the use of other
characters can be confusing or ambiguous in certain contexts.
(For instance, the use of a colon (:) in a pathname could cause
ambiguity if that pathname were included in a
<i>PATH</i>
definition.)
<p>
<h4><a name = "tag_004_000_115">&nbsp;</a>file offset</h4>The byte position in the file where the next I/O operation begins.
Each open file description associated with a regular file,
block special file or directory has a file offset.
A character special file that does not refer to a
terminal device may have a file offset.
There is no file offset specified for a pipe
or FIFO.
<p>
<h4><a name = "tag_004_000_116">&nbsp;</a>file other class</h4>The property of a file indicating access permissions
for a process related to the user and group identification of a process.
A process is in the file other class of a file if the process
is not in the file owner class or file group class.
<p>
<h4><a name = "tag_004_000_117">&nbsp;</a>file owner class</h4>The property of a file indicating access permissions
for a process related to the user identification of a process.
A process is in the file owner class of a file if the
effective user ID
of the process matches the user ID of the file.
<p>
<h4><a name = "tag_004_000_118">&nbsp;</a>file permission bits</h4>Information about a file that is used,
along with other information, to determine if a
process has read, write or execute/search permission to a file.
The bits are divided into three parts:
owner, group and other.
Each part is used with the corresponding file class of
processes.
These bits are contained in the
file mode,
as described in
<i><a href="../xsh/sysstat.h.html">&lt;sys/stat.h&gt;</a></i>.
The detailed usage of the
file permission bits
in access decisions is described in
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
<p>
<h4><a name = "tag_004_000_119">&nbsp;</a>file serial number</h4>A per-file-system unique identifier for a file.
<p>
<h4><a name = "tag_004_000_120">&nbsp;</a>file system</h4>A collection of files and certain of their attributes.
It provides a name space for file serial numbers referring to those files.
<p>
<h4><a name = "tag_004_000_121">&nbsp;</a>file times update</h4>Each file has three associated time values that are updated when file
data has been accessed, file data has been modified, or file status
has been changed, respectively.
These values are returned in the file
characteristics structure, as described in
<i><a href="../xsh/sysstat.h.html">&lt;sys/stat.h&gt;</a></i>.
<p>
For each function or utility
in this specification set that reads or writes file data or
changes the file status, the appropriate time-related fields are noted
as &quot;marked for update&quot;.
At an update point in time, any marked
fields are set to the current time and the update marks cleared.
Two such update points are when the file is no longer open by any process
and when
<i><a href="../xsh/stat.html">stat()</a></i>
or
<i><a href="../xsh/fstat.html">fstat()</a></i>
is performed on the file.
Additional update points are unspecified.
Marks for update, and updates themselves, are not
done for files on read-only file systems.
<p>
<h4><a name = "tag_004_000_122">&nbsp;</a>file type</h4>See
<xref href=filedef><a href="#tag_004_000_106">
file
</a></xref>.
<p>
<h4><a name = "tag_004_000_123">&nbsp;</a>filter</h4>A command whose operation consists of reading data from
standard input or a list of input files
and writing data to standard output.
Typically, its function is to perform some transformation
on the data stream.
<p>
<h4><a name = "tag_004_000_124">&nbsp;</a>first open (of a file)</h4>When a process opens a file
that is not currently an open file within any process.
<p>
<h4><a name = "tag_004_000_125">&nbsp;</a>foreground job</h4>See
<xref href=fgprocgrp><a href="#tag_004_000_127">
foreground process group
</a></xref>.
<p>
<h4><a name = "tag_004_000_126">&nbsp;</a>foreground process</h4>A process that is a member of a foreground process group.
<p>
<h4><a name = "tag_004_000_127">&nbsp;</a>foreground process group</h4><xref type="11" name="fgprocgrp"></xref>
(Or <b>foreground job</b>.)
A process group whose member processes have certain privileges,
denied to processes in background process groups,
when accessing their controlling terminal.
Each session that has established a connection with a controlling
terminal has exactly one process group of the session as the foreground
process group of that controlling terminal.  See
<xref href=genterm><a href="termios.html#tag_008">
General Terminal Interface
</a></xref>.
<p>
<h4><a name = "tag_004_000_128">&nbsp;</a>foreground process group ID</h4>The process group ID of the foreground process group.
<p>
<h4><a name = "tag_004_000_129">&nbsp;</a>form-feed character</h4>A character that in the output stream indicates
that printing should start on the next page of an output device.
The
form-feed
is the character
designated by
'\f'
in the C language.
If
the form-feed
is not the first character
of an output line, the result is unspecified.
It is unspecified whether this character is the exact sequence
transmitted to an output device by the system to accomplish the movement
to the next page.
<p>
<h4><a name = "tag_004_000_130">&nbsp;</a>graphic character</h4>A character, other than a control character,
that has a visual representation
when handwritten, printed or displayed.
<p>
<h4><a name = "tag_004_000_131">&nbsp;</a>group database</h4><xref type="11" name="groupdb"></xref>
A system database of implementation-dependent format that
contains at least the following information for each group ID:
<ul>
<p>
<li>
Group Name
<p>
<li>
Numerical Group ID
<p>
<li>
List of users allowed in the group.
<p>
</ul>
<p>
The list of users allowed in the group is used by the
<i><a href="../xcu/newgrp.html">newgrp</a></i>
utility.
<p>
<h4><a name = "tag_004_000_132">&nbsp;</a>group ID</h4><xref type="11" name="groupid"></xref>
A non-negative integer
that is used to identify a group of system users.
Each system user is a member of at least one group.
When the identity of a group is associated with a
process, a group ID value is referred to as a
real group ID,
an effective group ID,
one of the
supplementary group IDs or a saved set-group-ID.
<p>
<h4><a name = "tag_004_000_133">&nbsp;</a>group name</h4>A string that is used to identify a group, as described in
<xref href=groupdb><a href="#tag_004_000_131">
group database
</a></xref>.
To be portable across
XSI-conformant systems, the value must be composed of characters
from the portable filename character set.
The hyphen should not be used as the first character
of a portable group name.
<p>
<h4><a name = "tag_004_000_134">&nbsp;</a>hard limit</h4>A system resource limitation that may be reset to a lesser or greater limit
by a privileged process.  A non-privileged process is restricted to only
lowering its hard limit.
<p>
<h4><a name = "tag_004_000_135">&nbsp;</a>hard link</h4>The relationship between two
directory entries
that represent the same file;
see
<xref href=direntry><a href="#tag_004_000_075">
directory entry
</a></xref>.
This term is contrasted against
<b>symbolic link</b>;
see
<xref href=GLsymlink><a href="#tag_004_000_289">
symbolic link
</a></xref>.
<p>
<h4><a name = "tag_004_000_136">&nbsp;</a>home directory</h4>The current directory associated with a user
at the time of login.
<p>
<h4><a name = "tag_004_000_137">&nbsp;</a>incomplete line</h4>A sequence of one or more non-newline
characters at the end of the file.
<p>
<h4><a name = "tag_004_000_138">&nbsp;</a>Inf</h4>A value representing infinity that can be stored in a floating type.
Not all systems support the Inf value.
<p>
<h4><a name = "tag_004_000_139">&nbsp;</a>interactive shell</h4>A processing mode of the shell that is suitable for direct user interaction.
<p>
<h4><a name = "tag_004_000_140">&nbsp;</a>internationalisation</h4>The provision within a computer program of the capability
of making itself adaptable to the requirements of
different native languages, local customs and
coded character sets.
<p>
<h4><a name = "tag_004_000_141">&nbsp;</a>invoke</h4><xref type="11" name="invoke"></xref>
To perform the actions described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001_001"><b>Command Search and Execution</b>&nbsp;</a>,
except that searching for shell functions
and special built-in
utilities is suppressed.
See also
<xref href=execute><a href="#tag_004_000_097">
execute
</a></xref>.
<p>
<h4><a name = "tag_004_000_142">&nbsp;</a>ISO/IEC&nbsp;646:1983</h4>ISO 7-bit coded character set for information interchange.
The reference version of the standard
contains 95 graphic characters,
which are identical to the graphic characters defined in the
ASCII coded character set.
<p>
<h4><a name = "tag_004_000_143">&nbsp;</a>ISO&nbsp;6937:1983</h4>ISO 7-bit or 8-bit coded character set for text communication
using public communication networks, private communication networks,
or interchange media such as magnetic tapes and discs.
<p>
<h4><a name = "tag_004_000_144">&nbsp;</a>ISO&nbsp;8859-1:1987</h4>ISO 8-bit single-byte coded character set Part 1,
Latin Alphabet No 1.
This standard
character set comprises 191 graphic characters
covering the requirements of most of Western Europe.
<p>
<h4><a name = "tag_004_000_145">&nbsp;</a>job</h4>A set of processes, comprising a shell pipeline,
and any processes descended from it,
that are all in the same process group.
See the definition of
<b>pipeline</b>
in the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_002"><b>Pipelines</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_146">&nbsp;</a>job control</h4>A facility that allows
users selectively to stop (suspend) the execution of
processes
and continue (resume) their execution at a later point.
The user typically employs this facility via the interactive interface
jointly supplied by the terminal I/O
driver and a command interpreter.
<br>
<p>
<h4><a name = "tag_004_000_147">&nbsp;</a>job control job ID</h4>A handle that is used to refer to a job.
The job control job ID can be any of the forms shown in
the following table:
<pre>
<table  bordercolor=#000000 border=1 align=center><tr valign=top><th align=center><b>Job Control Job ID</b>
<th align=center><b>Meaning</b>
<tr valign=top><td align=left>%%
<td align=left>Current job
<tr valign=top><td align=left>%+
<td align=left>Current job
<tr valign=top><td align=left>%-
<td align=left>Previous job
<tr valign=top><td align=left>%<i>n</i>
<td align=left>Job number <i>n</i>
<tr valign=top><td align=left>%<i>string</i>
<td align=left>Job whose command begins with <i>string</i>
<tr valign=top><td align=left>%?<i>string</i>
<td align=left>Job whose command contains <i>string</i>
</table>

<h6 align=center><xref table="Job Control Job ID Formats"><a name="tagt_4">&nbsp;</a></xref>Table: Job Control Job ID Formats</h6>
</pre>
<p>
<h4><a name = "tag_004_000_148">&nbsp;</a>last close (of a file)</h4>When a process closes a file,
resulting in the file not being an open file within any process.
<p>
<h4><a name = "tag_004_000_149">&nbsp;</a>line</h4>A sequence of zero or more non-newline
characters plus a terminating
newline
character.
<p>
<h4><a name = "tag_004_000_150">&nbsp;</a>link</h4>See
<xref href=direntry><a href="#tag_004_000_075">
directory entry
</a></xref>.
<p>
<h4><a name = "tag_004_000_151">&nbsp;</a>link count</h4>The number of directory entries that refer to a particular file.
<p>
<h4><a name = "tag_004_000_152">&nbsp;</a>local customs</h4>The conventions of a geographical area or territory
for such things as date, time and currency formats.
<p>
<h4><a name = "tag_004_000_153">&nbsp;</a>locale</h4>The definition of the subset of a user's environment that depends
on language and cultural conventions;
see
<xref href=locale><a href="locale.html#tag_005">
Locale
</a></xref>.
<p>
<h4><a name = "tag_004_000_154">&nbsp;</a>localisation</h4>The process of establishing information within a computer system
specific to the operation of particular native languages, local
customs and coded character sets.
<p>
<h4><a name = "tag_004_000_155">&nbsp;</a>login</h4>The unspecified activity by which a user gains access to the system.
Each login is associated with exactly one login name.
<p>
<h4><a name = "tag_004_000_156">&nbsp;</a>login name</h4>A user name that is associated with a login.
<p>
<h4><a name = "tag_004_000_157">&nbsp;</a>map</h4>To create an association between a page-aligned range of the
address-space of a process and a range of physical memory or some
memory object, such that a reference to an address in that range 
of the address-space results in a reference to the associated 
physical memory or memory object.
The mapped memory or memory object is not necessarily
memory-resident.
<p>
<h4><a name = "tag_004_000_158">&nbsp;</a>marked message</h4>A STREAMs message on which a certain flag is set.  Marking a message gives
the application protocol-specific information.  An application can use
<i><a href="../xsh/ioctl.html">ioctl()</a></i>
to determine whether a given message is marked.
<p>
<h4><a name = "tag_004_000_159">&nbsp;</a>memory object</h4>Either a file or
shared memory object.
<p>
When used in conjunction with
<i><a href="../xsh/mmap.html">mmap()</a></i>,
a memory object will appear in the address-space of the calling process.
<p>
<h4><a name = "tag_004_000_160">&nbsp;</a>message</h4>Information that can be transferred between processes
or threads by being added to and removed from a
message queue.
A message consists of a fixed-size message buffer.
<p>
<h4><a name = "tag_004_000_161">&nbsp;</a>message catalogue</h4>A file or storage area containing program messages, command prompts and
responses to prompts for a particular native language, territory and codeset.
<p>
<h4><a name = "tag_004_000_162">&nbsp;</a>message catalogue descriptor</h4>A per-process unique value
used to identify an open message catalogue.
A message catalogue descriptor may be implemented
using a file descriptor.
<p>
<h4><a name = "tag_004_000_163">&nbsp;</a>message queue</h4>An object to which messages can be added and removed.
Messages may be removed in the order in which they were added
or in priority order.
<p>
<h4><a name = "tag_004_000_164">&nbsp;</a>mode</h4>A collection of attributes that specifies a
file's type and its access permissions.
See
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
<p>
<h4><a name = "tag_004_000_165">&nbsp;</a>mount point</h4>Either the system root directory or a directory
for which the
<i>st_dev</i>
field of structure
<b>stat</b>
(see
<i><a href="../xsh/sysstat.h.html">&lt;sys/stat.h&gt;</a></i>)
differs from that of its parent directory.
<p>
<h4><a name = "tag_004_000_166">&nbsp;</a>multi-character collating element</h4>A sequence of two or more characters that collate as an entity.
For example, in some coded character sets, an accented
character is represented by a non-spacing accent,
followed by the letter.
Other examples are the Spanish elements
ch
and
ll.
<p>
<h4><a name = "tag_004_000_167">&nbsp;</a>mutex</h4>A synchronization object used to allow multiple
threads to serialize their access to shared data.
The name derives from the capability it provides; namely, mutual
exclusion.
The thread that has locked a mutex becomes its owner
and remains the owner until that same thread
unlocks the mutex.
<p>
<h4><a name = "tag_004_000_168">&nbsp;</a>name</h4>In the shell,
a word consisting solely of underscores, digits and alphabetics
from the portable character set (see
<xref href=charset><a href="charset.html#tag_001_001">
Portable Character Set
</a></xref>).
The first character of a name must not be a digit.
<p>
There are no explicit limits in this specification set on the sizes of
names, words (see
<xref href=word><a href="#tag_004_000_327">
word
</a></xref>),
lines or other objects.
However, other implicit limits do apply:
shell script lines produced by many of the
standard utilities cannot exceed
{LINE_MAX}
and the sum of exported variables comes under the
{ARG_MAX}
limit.
Historical shells dynamically allocate memory for
names and words and parse incoming lines a byte at a time.
Lines cannot have an arbitrary
{LINE_MAX}
limit because of historical practice such as makefiles, where
<i><a href="../xcu/make.html">make</a></i>
removes the
newline characters
associated with the commands for a target
and presents the shell with one very long line.
The text on
<b>INPUT FILES</b>
in
the <b>XCU</b> specification, <b>Section 1.9</b>, <b>Utility Description Defaults</b>
does allow a shell to run out of memory,
but it cannot have arbitrary programming limits.
<br>
<p>
<h4><a name = "tag_004_000_169">&nbsp;</a>named STREAM</h4>A STREAMS-based file descriptor that is attached to a name in the file-system
namespace.  All subsequent operations on the named STREAM act on the STREAM
that was associated with the file descriptor until the name is disassociated
from the STREAM.
<p>
<h4><a name = "tag_004_000_170">&nbsp;</a>NaN (not a number)</h4>A value that can be stored in a floating type but that is
not a valid floating point number.
Not all systems support the NaN value.
<p>
<h4><a name = "tag_004_000_171">&nbsp;</a>native language</h4>A computer user's spoken or written language,
such as
American English,
British English,
Danish,
Dutch,
French,
German,
Italian,
Japanese,
Norwegian
or
Swedish.
<p>
<h4><a name = "tag_004_000_172">&nbsp;</a>negative response</h4>An input string that matches one of the responses
acceptable to the LC_MESSAGES category keyword
<b>noexpr</b>,
matching an extended regular expression in the current locale.
See
<xref href=lc_messages><a href="locale.html#tag_005_003_006">
LC_MESSAGES
</a></xref>.
<p>
<h4><a name = "tag_004_000_173">&nbsp;</a>newline character</h4>A character
that in the output stream indicates
that printing should start at the beginning
of the next line.
The
newline
is the character designated by
'\n'
in the C language.
It is unspecified whether this character
is the exact sequence transmitted to an output device
by the system to accomplish the movement to the next line.
<p>
<h4><a name = "tag_004_000_174">&nbsp;</a>non-spacing characters</h4>A character, such as a character representing a diacritical
mark in the
ISO&nbsp;6937:1983 standard
coded character set,
which is used in combination with other characters
to form composite graphic symbols.
<p>
<h4><a name = "tag_004_000_175">&nbsp;</a>NUL</h4>A character with all bits set to zero.
<p>
<h4><a name = "tag_004_000_176">&nbsp;</a>null byte</h4>A byte with all bits set to zero.
<p>
<h4><a name = "tag_004_000_177">&nbsp;</a>null pointer</h4>The value that is obtained by converting the number 0 into a pointer;
for example,
(<b>void&nbsp;</b>*)&nbsp;0.
The C language guarantees that this value will not match that of
any legitimate pointer,
so it is used by many functions that return
pointers to indicate an error.
<p>
<h4><a name = "tag_004_000_178">&nbsp;</a>null string</h4>See
<xref href=emptystr><a href="#tag_004_000_091">
empty string
</a></xref>.
<p>
<h4><a name = "tag_004_000_179">&nbsp;</a>null wide-character code</h4><xref type="11" name="nullwidechar"></xref>
A wide-character code with all bits set to zero.
<p>
<h4><a name = "tag_004_000_180">&nbsp;</a>number sign</h4><xref type="11" name="numbersign"></xref>
The character #, also known as
<i>hash sign</i>.
<p>
<h4><a name = "tag_004_000_181">&nbsp;</a>object file</h4>A regular file containing the output of a compiler, formatted as input
to a linkage editor for linking with other object files into an
executable form.
The methods of linking are unspecified and may involve the
dynamic linking of objects at run time.
The internal format of an object file is unspecified, but a conforming
application cannot assume an object file is a text file.
<p>
<h4><a name = "tag_004_000_182">&nbsp;</a>offset maximum</h4>An attribute of an open file description representing the largest value
that can be used as a file offset.
<p>
<h4><a name = "tag_004_000_183">&nbsp;</a>open file</h4>A file that is currently associated with a file descriptor.
<br>
<p>
<h4><a name = "tag_004_000_184">&nbsp;</a>open file description</h4><xref type="11" name="openfiledes"></xref>
A record of how a process or group of processes are accessing a file.
Each file descriptor refers to exactly one open file description,
but an open file description can be referred to
by more than one file descriptor.
A file offset, file status and file access modes are attributes
of an open file description.
<p>
<h4><a name = "tag_004_000_185">&nbsp;</a>operand</h4>An argument to a command
that is generally used as an object
supplying information to a
utility necessary to complete its processing.
Operands generally follow the options in a command line.
See
<xref href=utilarg><a href="utilconv.html#tag_009_001">
Utility Argument Syntax
</a></xref>.
<p>
<h4><a name = "tag_004_000_186">&nbsp;</a>operator</h4>In the shell,
either a control operator or a redirection operator.
<p>
<h4><a name = "tag_004_000_187">&nbsp;</a>option</h4>An argument to a command
that is generally used to specify changes in the
utility's
default behaviour;
see
<xref href=utilarg><a href="utilconv.html#tag_009_001">
Utility Argument Syntax
</a></xref>.
<p>
<h4><a name = "tag_004_000_188">&nbsp;</a>option-argument</h4>A parameter that follows certain options.
In some cases an option-argument is included within
the same argument string as the option; in most cases it is the next argument.
See
<xref href=utilarg><a href="utilconv.html#tag_009_001">
Utility Argument Syntax
</a></xref>.
<p>
<h4><a name = "tag_004_000_189">&nbsp;</a>orphaned process group</h4>A process group in which the parent of every member is either itself a member
of the group or is not a member of the group's session.
<p>
<h4><a name = "tag_004_000_190">&nbsp;</a>page</h4>The granularity of process memory mapping or locking.
<p>
Physical memory and memory objects can be mapped into the
address-space of a process
on page boundaries and in integral multiples of pages.
Process address-space can be locked into
memory (made memory-resident) on
page boundaries and in integral multiples of pages.
<p>
<h4><a name = "tag_004_000_191">&nbsp;</a>page size</h4>The size, in bytes, of the system unit of memory allocation, protection and
mapping.  On systems that have segment- rather than page-based memory
architectures, the term &quot;page&quot; means a segment.
<p>
<h4><a name = "tag_004_000_192">&nbsp;</a>parameter</h4>In the shell,
an entity that stores values.
There are three types of
parameters:
variables
(named parameters),
positional parameters and special parameters.
Parameter expansion is accomplished by introducing a parameter with the
"$" character.
See the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_005"><b>Parameters and Variables</b>&nbsp;</a>.
<p>
In the C language, an object declared as part of a function declaration
or definition that acquires a value on entry to the function,
or an identifier following the macro name in a
function-like macro definition.
<p>
<h4><a name = "tag_004_000_193">&nbsp;</a>parent directory</h4>When discussing a given directory,
the directory that both contains a directory entry
for the given directory and is represented by
the pathname dot-dot in the given directory.
<p>
When discussing other types of files,
a directory containing a
directory entry for the file under discussion.
<p>
This concept does not apply to dot and dot-dot.
<p>
<h4><a name = "tag_004_000_194">&nbsp;</a>parent process</h4>See
<xref href=processdef><a href="#tag_004_000_216">
process
</a></xref>.
<p>
<h4><a name = "tag_004_000_195">&nbsp;</a>parent process ID</h4>An attribute of a new process identifying the parent of the process.
The parent process ID of a process is the process ID
of its creator, for the lifetime of the creator.
After the creator's lifetime has ended, the
parent process ID
is the
process ID
of an implementation-dependent
system process.
<p>
<h4><a name = "tag_004_000_196">&nbsp;</a>pathname</h4>A character string that is used to identify a file.
A pathname consists of, at most,
{PATH_MAX}
bytes, including the terminating null byte.
It has an optional beginning slash,
followed by zero or more filenames separated by slashes.
If the pathname refers to a directory,
it may also have one or more trailing slashes.
Multiple successive slashes are considered to be the same as one slash.
A pathname that begins with two successive slashes
may be interpreted in an implementation-dependent manner, although more
than two leading slashes are treated as a single slash.
The interpretation of the pathname is described in
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
<p>
<h4><a name = "tag_004_000_197">&nbsp;</a>pathname component</h4>See
<xref href=filename><a href="#tag_004_000_114">
filename
</a></xref>.
<p>
<h4><a name = "tag_004_000_198">&nbsp;</a>pathname resolution</h4><xref type="11" name="pathres"></xref>
Pathname resolution is performed for a process to resolve a pathname to
a particular file in a file hierarchy.
There may be multiple pathnames that resolve to the same file.
<p>
Each filename in the pathname is located in the directory specified by
its predecessor (for example, in the pathname fragment
<b>a/b</b>,
file
<b>b</b>
is located in directory
<b>a</b>).
Pathname resolution fails if this cannot be accomplished.
If the pathname begins with a slash, the predecessor of the first
filename in the pathname is taken to be the root directory of the
process (such pathnames are referred to as absolute pathnames).
If the pathname does not begin with a slash,
the predecessor of the first filename of the
pathname is taken to be the current working directory of the process
(such pathnames are referred to as relative pathnames).
<p>
The interpretation of a pathname component is dependent on the values of
{NAME_MAX}
and
{_POSIX_NO_TRUNC}
associated with the path prefix of that component.
If any pathname component is longer than
{NAME_MAX},
because
{_POSIX_NO_TRUNC}
is in effect on all XSI-conformant systems
for the path prefix of that component (see
<i><a href="../xsh/pathconf.html">pathconf()</a></i>),
the implementation will consider this an error condition.
<p>
If a symbolic link (see
<xref href=GLsymlink><a href="#tag_004_000_289">
symbolic link
</a></xref>)
is encountered during pathname resolution, then pathname resolution is
complete if all of the following are true:
<ul>
<p>
<li>
This is the last component of the pathname.
<p>
<li>
The pathname has no trailing slash.
<p>
<li>
The function is required to act on the symbolic link itself, or certain
arguments direct that the function act on the symbolic link itself.
<p>
</ul>
<p>
In all other cases, the system prefixes the remaining pathname, if any, with
the contents of the symbolic link.  The function may fail, setting
<i>errno</i>
to [ENAMETOOLONG], if the combined length exceeds {PATH_MAX}.  Otherwise, the
resolved pathname is the resolution of the pathname just created.  The result
is either an absolute pathname that is resolved from the root directory of the
process or a relative pathname that is resolved from the directory containing
the symbolic link.
<p>
The special filename dot
refers to the directory specified by its predecessor.
The special filename dot-dot
refers to the parent directory of its predecessor directory.
As a special case, in the root directory,
dot-dot may refer to the root directory itself.
<p>
A pathname consisting of a single slash resolves to the root directory
of the process.
A null pathname is invalid.
<p>
<h4><a name = "tag_004_000_199">&nbsp;</a>path prefix</h4>A pathname, with an optional ending slash,
that refers to a directory.
<p>
<h4><a name = "tag_004_000_200">&nbsp;</a>pattern</h4>A sequence of characters used either with
regular expression notation (see
<xref href=re><a href="re.html#tag_007">
Regular Expressions
</a></xref>)
or for pathname expansion (see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_006"><b>Pathname Expansion</b>&nbsp;</a>),
as a means of selecting various character strings
or pathnames, respectively.
<p>
The syntaxes of the two patterns are similar, but not identical;
this specification set always indicates the type of pattern
being referred to in the immediate context of the use of the term.
<p>
<h4><a name = "tag_004_000_201">&nbsp;</a>period</h4>The character
(.).
The term
<i>period</i>
is contrasted against
<b>dot</b>,
which is used to describe a specific directory entry.
<p>
<h4><a name = "tag_004_000_202">&nbsp;</a>permissions</h4>See
<xref href=fileaccperm><a href="#tag_004_000_107">
file access permissions
</a></xref>.
<p>
<h4><a name = "tag_004_000_203">&nbsp;</a>persistence</h4>A mode for semaphores, shared memory and message queues
requiring that the object and its state (including data, if any)
are preserved after the object is no longer referenced by any process.
<p>
Persistence of an object does not imply that the state of the object
is maintained across a system crash or a system reboot.
<p>
<h4><a name = "tag_004_000_204">&nbsp;</a>pipe</h4>An object accessed by one of the pair of
file descriptors created by the
<i><a href="../xsh/pipe.html">pipe()</a></i>
function.
Once created, the file descriptors
can be used to manipulate it, and it behaves
identically to a FIFO special file
when accessed in this way.
It has no name in the file hierarchy.
<br>
<p>
<h4><a name = "tag_004_000_205">&nbsp;</a>positional parameter</h4>In the shell,
a parameter denoted by a single digit
or one or more digits in curly braces.
See the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_005_001"><b>Positional Parameters</b>&nbsp;</a>.
<br>
<p>
<h4><a name = "tag_004_000_206">&nbsp;</a>portable character set</h4>The collection of
characters that are required to be present in all locales supported by
XSI-conformant systems:
<code>
<pre>
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 ! # % ^ &amp; * ( ) _ + - = { } [ ]
: " ~ ; ' ` &lt; &gt; ? , . | \ / @ $
</code>
</pre>
<p>
Also included are the
alert,
backspace,
tab,
newline,
vertical-tab,
form-feed,
carriage-return
and
space characters
and the null character, NUL.
<p>
This term is contrasted against the smaller
<b>portable filename character set</b>.
See
<xref href=portchar><a href="charset.html#tagt_1">
Portable Character Set
</a></xref>.
<p>
<h4><a name = "tag_004_000_207">&nbsp;</a>portable filename character set</h4>The set of characters from which portable filenames are constructed.
For a filename to be portable across implementations conforming
to this specification set and the ISO&nbsp;POSIX-1 standard,
it must consist only of the
following characters:
<code>
<pre>
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -
</code>
</pre>
The last three characters are
the period, underscore and hyphen characters, respectively.
The hyphen must not be used as the first character of
a portable filename.
Upper- and lower-case letters retain their unique identities
between conforming implementations.
In the case of a portable pathname,
the slash character may also be used.
<p>
<h4><a name = "tag_004_000_208">&nbsp;</a>preallocation</h4>The reservation of resources in a system for a particular use.
<p>
Preallocation does not imply that
the resources are immediately allocated to that use,
but merely indicates that they are guaranteed
to be available in bounded time when needed.
<p>
<h4><a name = "tag_004_000_209">&nbsp;</a>preempted process (or thread)</h4>A running thread
whose execution is suspended due to another thread
becoming runnable at a higher priority.
<p>
<h4><a name = "tag_004_000_210">&nbsp;</a>printable character</h4>One of the characters included in the
<b>print</b>
character classification of the LC_CTYPE category in the current locale;
see
<xref href=lc_ctype><a href="locale.html#tag_005_003_001">
LC_CTYPE
</a></xref>.
<p>
<h4><a name = "tag_004_000_211">&nbsp;</a>printable file</h4>A text file consisting only of the characters included in the
<b>print</b>
and
<b>space</b>
character classifications
of the LC_CTYPE category and the
backspace
character, all in the current locale;
see
<xref href=lc_ctype><a href="locale.html#tag_005_003_001">
LC_CTYPE
</a></xref>.
<p>
<h4><a name = "tag_004_000_212">&nbsp;</a>priority</h4>A non-negative integer associated with processes or threads
whose value is constrained to a range defined by the applicable
scheduling policy.  Numerically higher values represent higher 
priorities.
<p>
<h4><a name = "tag_004_000_213">&nbsp;</a>priority band</h4>The queueing order applied to normal priority STREAMS messages.  High priority
STREAMS messages are not grouped by priority bands.  The only differentiation
made by the STREAMS mechanism is between zero and non-zero bands, but specific
protocol modules may differentiate between priority bands.
<br>
<p>
<h4><a name = "tag_004_000_214">&nbsp;</a>priority-based scheduling</h4>Scheduling in which the selection of a running thread
is determined by the priorities of the runnable threads.
<p>
<h4><a name = "tag_004_000_215">&nbsp;</a>privilege</h4>See
<xref href=appropriv><a href="#tag_004_000_012">
appropriate privileges
</a></xref>.
<br>
<p>
<h4><a name = "tag_004_000_216">&nbsp;</a>process</h4><xref type="11" name="processdef"></xref>
An address space with one or more threads executing within that
address space, and the required system resources for those threads.
<p>
Many of the system resources defined by this specification are shared
among all of the threads within a process.
These include: the process ID, the parent process ID, process group
ID,
session membership, real, effective and saved-set user ID,
real, effective and saved-set group ID, supplementary group IDs,
current working directory, root directory,
file mode creation mask and file descriptors.
<p>
A process is created by another process issuing the
<i><a href="../xsh/fork.html">fork()</a></i>
function.
The process that issues
<i><a href="../xsh/fork.html">fork()</a></i>
is known as the parent process,
and the new process created by the
<i><a href="../xsh/fork.html">fork()</a></i>
is known as the child process.
<p>
<h4><a name = "tag_004_000_217">&nbsp;</a>process group</h4>A collection of processes that permits the signalling of related processes.
Each process in the system is a member of a process group
that is identified by a process group ID.
A newly created process joins the process group of its creator.
<br>
<p>
<h4><a name = "tag_004_000_218">&nbsp;</a>process group ID</h4>The unique identifier representing a process group during its lifetime.
A process group ID is a positive integer.
A process group ID will not be reused by the system until the
process group lifetime ends.
<p>
<h4><a name = "tag_004_000_219">&nbsp;</a>process group leader</h4>A process whose process ID is the same as its process group ID.
<p>
<h4><a name = "tag_004_000_220">&nbsp;</a>process group lifetime</h4>A period of time that begins when a process group is created and ends
when the last remaining process in the group leaves the group, due either
to the end of the last process' lifetime or to the last remaining
process calling the
<i><a href="../xsh/setsid.html">setsid()</a></i>
or
<i><a href="../xsh/setpgid.html">setpgid()</a></i>
functions.
<p>
<h4><a name = "tag_004_000_221">&nbsp;</a>process ID</h4>The unique identifier representing a process.
A process ID is a positive integer.
A process ID
will not be reused by the system until the process lifetime ends.
In addition, if there exists a
process group whose process group ID is equal to that process ID,
the process ID
will not be reused by the system until the process group lifetime ends.
A process that is not a system process
will not have a process ID of 1.
<p>
<h4><a name = "tag_004_000_222">&nbsp;</a>process lifetime</h4>The period of time that begins when a process is created
and ends when its process ID is returned to the system.
After a process is created with a
<i><a href="../xsh/fork.html">fork()</a></i>
function,
it is considered active.
At least one thread of control 
and address space exist until it terminates.
It then enters an inactive state where certain resources may be
returned to the system, although some resources,
such as the process ID, are still in use.
When another process executes a
<i><a href="../xsh/wait.html">wait()</a></i>,
<i><a href="../xsh/wait3.html">wait3()</a></i>,
<i><a href="../xsh/waitid.html">waitid()</a></i>
or
<i><a href="../xsh/waitpid.html">waitpid()</a></i>
function for an inactive process,
the remaining resources are returned to the system.
The last resource to be returned to the system is the process ID.
At this time, the lifetime of the process ends.
<p>
<h4><a name = "tag_004_000_223">&nbsp;</a>process list</h4>See
<xref href=thread_list><a href="#tag_004_000_309">
thread list
</a></xref>.
<p>
<h4><a name = "tag_004_000_224">&nbsp;</a>process virtual time</h4>The measurement of time in units elapsed by the system clock while
a process is executing.
<p>
<h4><a name = "tag_004_000_225">&nbsp;</a>program</h4>A prepared sequence of instructions to
the system to accomplish a defined task.
The term
<i>program</i>
in this specification set encompasses applications written in the
XSI Shell Command Language,
complex utility input languages (for example,
<i><a href="../xcu/awk.html">awk</a></i>,
<i><a href="../xcu/lex.html">lex</a></i>,
<i><a href="../xcu/sed.html">sed</a></i>,
and so on), and high-level languages.
<p>
<h4><a name = "tag_004_000_226">&nbsp;</a>pseudo-terminal</h4>A pseudo-terminal provides the process with an interface that is identical to
the terminal subsystem.  A pseudo-terminal is composed of 2 devices, the
master device and a slave device.  The slave device provides processes with an
interface that is identical to the terminal interface, although there need not
be hardware behind that interface.  Anything written on the master device is
presented to the slave as an input and anything written on the slave device is
presented as an input on the master side.
<p>
This specification requires a STREAMS-based implementation of 
pseudo-terminals to be available, but does not preclude others also being
available.
<p>
<h4><a name = "tag_004_000_227">&nbsp;</a>radix character</h4>The character that separates the integer part of a number
from the fractional part.
<p>
<h4><a name = "tag_004_000_228">&nbsp;</a>read-only file system</h4>A file system that has implementation-dependent characteristics
restricting modifications.
<p>
<h4><a name = "tag_004_000_229">&nbsp;</a>read-write lock</h4>Multiple readers, single writer (read-write) locks allow many threads
to have simultaneous read-only access to data while allowing only one
thread to have write access at any given time.
They are typically used to protect data that is read-only more
frequently than it is changed.
<p>
Read-write locks can be used to synchronise threads in the current
process and other processes if they are allocated in memory that is
writable and shared among the cooperating processes and have been
initialised for this behaviour.
<p>
<h4><a name = "tag_004_000_230">&nbsp;</a>real group ID</h4>The attribute of a process that, at the time of process creation,
identifies the group of the user who created the process.
See
<xref href=groupid><a href="#tag_004_000_132">
group ID
</a></xref>.
This value is subject to change during the
process lifetime,
as described in
<i><a href="../xsh/setgid.html">setgid()</a></i>.
<br>
<p>
<h4><a name = "tag_004_000_231">&nbsp;</a>real time</h4>Time measured as total units elapsed by the system clock without
regard to which thread is executing.
<p>
<h4><a name = "tag_004_000_232">&nbsp;</a>real user ID</h4>The attribute of a process that, at the time of process
creation, identifies the user who created the process.
See
<xref href=userid><a href="#tag_004_000_318">
user ID
</a></xref>.
This value is subject to change during the
process lifetime,
as described in
<i><a href="../xsh/setuid.html">setuid()</a></i>.
<p>
<h4><a name = "tag_004_000_233">&nbsp;</a>redirection</h4>In the shell,
a method of associating files with the input or output of commands.
See
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_007"><b>Redirection</b>&nbsp;</a>.
<br>
<p>
<h4><a name = "tag_004_000_234">&nbsp;</a>redirection operator</h4>In the shell,
a token that performs a redirection function.
It is one of the following symbols:
<code>
<pre>
&lt;     &gt;     &gt;|     &lt;&lt;     &gt;&gt;     &lt;&amp;     &gt;&amp;     &lt;&lt;-     &lt;&gt;
</code>
</pre>
<p>
<h4><a name = "tag_004_000_235">&nbsp;</a>reentrant function</h4>A function whose effect, when called by two or more threads,
is guaranteed to be as if the threads each executed the function
one after another in an undefined order,
even if the actual execution is interleaved.
<p>
<h4><a name = "tag_004_000_236">&nbsp;</a>referenced shared memory object</h4>A shared memory object that is open
or has one or more mappings defined on it.
<p>
<h4><a name = "tag_004_000_237">&nbsp;</a>refresh</h4>To ensure that the information on the user's terminal screen is up-to-date.
<p>
<h4><a name = "tag_004_000_238">&nbsp;</a>regular expression</h4>A pattern constructed according to
the rules defined in
<xref href=re><a href="re.html#tag_007">
Regular Expressions
</a></xref>.
<p>
<h4><a name = "tag_004_000_239">&nbsp;</a>region</h4>In the context of the address space of a process, a sequence of addresses.
<p>
In the context of a file, a sequence of offsets.
<p>
<h4><a name = "tag_004_000_240">&nbsp;</a>regular file</h4>A file that is a randomly accessible sequence of bytes,
with no further structure imposed by the system.
<p>
<h4><a name = "tag_004_000_241">&nbsp;</a>relative pathname</h4>See
<xref href=pathres><a href="#tag_004_000_198">
pathname resolution
</a></xref>.
<p>
<h4><a name = "tag_004_000_242">&nbsp;</a>(time) resolution</h4>The minimum time interval that a clock
can measure or whose passage a timer
can detect.
<p>
<h4><a name = "tag_004_000_243">&nbsp;</a>root directory</h4>A directory, associated with a process, that is used in
pathname resolution for pathnames that begin with a slash.
<p>
<h4><a name = "tag_004_000_244">&nbsp;</a>runnable process (or thread)</h4>A thread that is capable of being a running thread,
but for which no processor is available.
<p>
<h4><a name = "tag_004_000_245">&nbsp;</a>running process (or thread)</h4>A thread currently executing on a processor.
On multi-processor systems there may be more than one such 
thread in a system at a time.
<p>
<h4><a name = "tag_004_000_246">&nbsp;</a>saved resource limits</h4>An attribute of a process that provides some flexibility in the handling
of unrepresentable resource limits, as described in the <i>exec</i>
family of functions and
<i><a href="../xsh/setrlimit.html">setrlimit()</a></i>.
<p>
<h4><a name = "tag_004_000_247">&nbsp;</a>saved set-group-ID</h4>An attribute of a
process that allows some flexibility in the assignment of the
effective group ID attribute,
as described in the
<i>exec</i>
family of functions and
<i><a href="../xsh/setgid.html">setgid()</a></i>.
<p>
<h4><a name = "tag_004_000_248">&nbsp;</a>saved set-user-ID</h4>An attribute of a process that allows some flexibility
in the assignment of the effective user ID attribute,
as described in
<i>exec</i>
and
<i><a href="../xsh/setuid.html">setuid()</a></i>.
<p>
<h4><a name = "tag_004_000_249">&nbsp;</a>scheduling</h4>The application of a policy to select a
runnable process or thread to become a running process or thread,
or to alter one or more of the thread lists.
<p>
<h4><a name = "tag_004_000_250">&nbsp;</a>scheduling allocation domain</h4>The set of processors on which an individual
thread can be scheduled at any given time.
<p>
<h4><a name = "tag_004_000_251">&nbsp;</a>scheduling contention scope</h4>A property of a thread
that defines the set of threads
against which that thread competes for resources.
<p>
For example, in a scheduling decision, threads sharing
scheduling contention scope
compete for processor resources.
In this specification, a thread has
scheduling contention scope
of either PTHREAD_SCOPE_SYSTEM
or PTHREAD_SCOPE_PROCESS.
<p>
<h4><a name = "tag_004_000_252">&nbsp;</a>scheduling policy</h4>A set of rules that is used to
determine the order of execution of threads to achieve some goal.
<p>
In the context of XSI, a scheduling policy
affects thread ordering:
<ul>
<p>
<li>
when a thread is a running thread and it becomes a blocked thread
<p>
<li>
when a thread is a running thread and it becomes a preempted thread
<p>
<li>
when a thread is a blocked thread and it becomes a runnable thread
<p>
<li>
when a running thread calls a function that can change the
priority or scheduling policy of a thread
<p>
<li>
in other scheduling policy-defined circumstances.
<p>
</ul>
<p>
Conforming implementations are required to define the manner in which 
each of the scheduling policies may modify the priorities
or otherwise affect the ordering of
threads at each of the occurrences listed above.
Additionally, conforming implementations will define at what
other circumstances and in what manner each scheduling policy may modify
the priorities or affect the ordering of threads.
<p>
<h4><a name = "tag_004_000_253">&nbsp;</a>screen</h4>A rectangular region of columns and lines on a terminal display.
A screen may be a portion of a physical display device or may
occupy the entire physical area of the display device.
<p>
<h4><a name = "tag_004_000_254">&nbsp;</a>scroll</h4>To move the representation of data vertically or horizontally
relative to the terminal screen.
There are two types of scrolling:
<ol>
<p>
<li>
The cursor moves with the data.
<p>
<li>
The cursor remains stationary while the data moves.
<p>
</ol>
<p>
<h4><a name = "tag_004_000_255">&nbsp;</a>seconds since the epoch</h4><xref type="11" name="secsepoch"></xref>
A value to be interpreted as the number of seconds between a
specified time and the epoch.
A Coordinated Universal Time name
(specified in terms of seconds
(<i>tm_sec</i>),
minutes
(<i>tm_min</i>),
hours
(<i>tm_hour</i>),
days since January 1 of the year
(<i>tm_yday</i>),
and calendar year minus 1900
(<i>tm_year</i>))
is related to a time represented
as
seconds since the Epoch,
according to the expression below.
<p>
If the year &lt; 1970 or the value is negative, the relationship
is undefined.
If the year  1970 and the value is non-negative,
the value is related to a Coordinated Universal Time name
according to the expression:
<pre>
<dl compact><dt> <dd>
<i>tm_sec</i> + <i>tm_min</i>*60 + <i>tm_hour</i>*3600 + <i>tm_yday</i>*86400 +
    (<i>tm_year</i>-70)*31536000 + ((<i>tm_year</i>-69)/4)*86400
</dl>
</pre>
<p>
<h4><a name = "tag_004_000_256">&nbsp;</a>semaphore</h4>A shareable resource that has a non-negative integral value.
When the value is zero,
there is a (possibly empty) set of threads
awaiting the availability of the semaphore.
<p>
<h4><a name = "tag_004_000_257">&nbsp;</a>semaphore lock operation</h4>An operation that is applied to a semaphore.
If, prior to the operation, the value of the
semaphore is zero, the
semaphore lock operation
causes the calling thread to be blocked
and added to the set of threads awaiting the semaphore.
Otherwise, the value is decremented.
<p>
<h4><a name = "tag_004_000_258">&nbsp;</a>semaphore unlock operation</h4>An operation that is applied to a semaphore.
If, prior to the operation,
there are any threads in the set of threads awaiting the semaphore,
then some thread from that set will be removed from the set
and become unblocked.
Otherwise, the semaphore value is incremented.
<p>
<h4><a name = "tag_004_000_259">&nbsp;</a>session</h4>A collection of process groups established for job control purposes.
Each process group is a member of a session.
A process is considered to be a member of the
session of which its process group is a member.
A newly created process joins the session of its creator.
A process can alter its session membership; see
<i><a href="../xsh/setsid.html">setsid()</a></i>.
There can be multiple process groups in the same session.
<p>
<h4><a name = "tag_004_000_260">&nbsp;</a>session leader</h4>A process that has created a session; see
<i><a href="../xsh/setsid.html">setsid()</a></i>.
<p>
<h4><a name = "tag_004_000_261">&nbsp;</a>session lifetime</h4>The period between when a session is created
and the end of the lifetime of all the process groups
that remain as members of the session.
<p>
<h4><a name = "tag_004_000_262">&nbsp;</a>shared memory object</h4>An object that represents memory
that can be mapped concurrently into the address space
of more than one process.
<p>
<h4><a name = "tag_004_000_263">&nbsp;</a>shell</h4>A program that interprets sequences of text input as commands.
It may operate on an input stream
or it may interactively prompt and read commands from a terminal.
<p>
<h4><a name = "tag_004_000_264">&nbsp;</a>shell, the</h4>The XSI Shell Command Language Interpreter
(see
<i><a href="../xcu/sh.html">sh</a></i>),
a specific instance of a shell.
<p>
<h4><a name = "tag_004_000_265">&nbsp;</a>shell script</h4>A file containing shell commands.
If the file is made executable,
it can be executed by specifying its name as a simple command (see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001"><b>Simple Commands</b>&nbsp;</a>).
Execution of a shell script
causes a shell to execute the commands within the script.
Alternatively, a shell can be requested to execute
the commands in a shell script
by specifying the name of the shell script as the
operand to the
<i><a href="../xcu/sh.html">sh</a></i>
utility.
<p>
<h4><a name = "tag_004_000_266">&nbsp;</a>signal</h4>A mechanism by which a process or thread
may be notified of, or affected by, an event occurring in the system.
Examples of such events include hardware exceptions
and specific actions by
processes.
The term
<i>signal</i>
is also used to refer to the event itself.
<p>
<h4><a name = "tag_004_000_267">&nbsp;</a>signal stack</h4>Memory established for a thread, in which signal handlers
catching signals sent to that thread are executed.
<p>
<h4><a name = "tag_004_000_268">&nbsp;</a>single-quote</h4>The character "'", also known as
<i>apostrophe</i>.
<p>
<h4><a name = "tag_004_000_269">&nbsp;</a>slash</h4>The character "/", also known as
<i>solidus</i>.
<p>
<h4><a name = "tag_004_000_270">&nbsp;</a>socket</h4>A communications endpoint associated with a file descriptor that
provides communications services using a specified communications
protocol.  See the <b>Networking Services</b> specification.
<p>
<h4><a name = "tag_004_000_271">&nbsp;</a>soft limit</h4>A resource limitation established for each process that the process may set to
any value less than or equal to the hard limit.
<p>
<h4><a name = "tag_004_000_272">&nbsp;</a>source code</h4>When dealing with the XSI Shell Command Language,
input to the command language interpreter.
The term
<i>shell script</i>
is synonymous with this meaning.
<p>
When dealing with the C language,
input to a C compiler conforming to the ISO&nbsp;C standard.
<p>
When dealing with another XSI-compliant language,
input to a compiler conforming to that language standard.
<p>
Source code also refers to the input statements prepared for
the following standard utilities:
<i><a href="../xcu/awk.html">awk</a></i>,
<i><a href="../xcu/bc.html">bc</a></i>,
<i><a href="../xcu/ed.html">ed</a></i>,
<i><a href="../xcu/lex.html">lex</a></i>,
<i><a href="../xcu/localedef.html">localedef</a></i>,
<i><a href="../xcu/make.html">make</a></i>,
<i><a href="../xcu/sed.html">sed</a></i>
and
<i><a href="../xcu/yacc.html">yacc</a></i>.
<p>
Source code
can also refer to a collection of sources meeting any or all
of these meanings.
<br>
<p>
<h4><a name = "tag_004_000_273">&nbsp;</a>special parameter</h4>In the shell,
a parameter named by a single character from the following list:
<code>
<pre>
*   @   #   ?   !   -   $   0
</code>
</pre>
See the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_005_002"><b>Special Parameters</b>&nbsp;</a>.
<br>
<p>
<h4><a name = "tag_004_000_274">&nbsp;</a>space character</h4>The character defined in
the portable character set
as
&lt;space&gt;.
The space character is a member of the
<b>space</b>
character class of the current locale,
but represents the single character, and not all
of the possible members of the class.
(See
<xref href=whitespace><a href="#tag_004_000_324">
white space
</a></xref>.)
<p>
<h4><a name = "tag_004_000_275">&nbsp;</a>standard error</h4>An output stream usually intended to be used for diagnostic messages.
<p>
<h4><a name = "tag_004_000_276">&nbsp;</a>standard input</h4>An input stream usually intended to be used for primary data input.
<p>
<h4><a name = "tag_004_000_277">&nbsp;</a>standard output</h4>An output stream usually intended to be used for primary data output.
<p>
<h4><a name = "tag_004_000_278">&nbsp;</a>standard utilities</h4>The utilities described in the <b>XCU</b> specification.
<p>
<h4><a name = "tag_004_000_279">&nbsp;</a>stream</h4>Appearing in lower case, a stream is a file access object that allows access
to an ordered sequence of characters, as described by the ISO&nbsp;C standard.  Such objects
can be created by the
<i><a href="../xsh/fdopen.html">fdopen()</a></i>,
<i><a href="../xsh/fopen.html">fopen()</a></i>
or
<i><a href="../xsh/popen.html">popen()</a></i>
functions, and are associated with a file descriptor.  A stream provides the
additional services of user-selectable buffering and formatted input and
output.  See the <b>XSH</b> specification, <a href="../xsh/stdio.html"><b>Standard I/O Streams</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_280">&nbsp;</a>STREAM</h4>Appearing in upper case, STREAM refers to
a full duplex connection between a process and an open device or
pseudo-device.  It optionally includes one or more intermediate processing
modules that are interposed between the process end of the STREAM and the
device driver (or pseudo-device driver) end of the STREAM.  See the <b>XSH</b> specification, <a href="../xsh/STREAMS.html"><b>STREAMS</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_281">&nbsp;</a>STREAM end</h4>The STREAM end is the driver end of the STREAM and is also known as
the downstream end of the STREAM.
<p>
<h4><a name = "tag_004_000_282">&nbsp;</a>STREAM head</h4>The STREAM head is the beginning of the STREAM and is at the boundary between
the system and the application process.
This is also known as the upstream end of the STREAM.
<p>
<h4><a name = "tag_004_000_283">&nbsp;</a>STREAMS multiplexor</h4>A driver with multiple STREAMS connected to it.  Multiplexing with STREAMS
connected above is referred to as N-to-1, or upper multiplexing.  Multiplexing
with STREAMS connected below is referred to as 1-to-N or lower multiplexing.
<p>
<h4><a name = "tag_004_000_284">&nbsp;</a>string</h4>A contiguous sequence of bytes terminated by and including
the first null byte.
<p>
<h4><a name = "tag_004_000_285">&nbsp;</a>subshell</h4>A shell execution environment,
distinguished from the main or current shell
execution environment by the attributes described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_012"><b>Shell Execution Environment</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_286">&nbsp;</a>successfully transferred</h4>For a write operation to a regular file, when the system
ensures that all data written is readable on any subsequent 
open of the file
(even one that follows a system or power failure)
in the absence of a failure of the physical storage medium.
<p>
For a read operation,
when an image of the data on the physical storage medium is available
to the requesting process.
<p>
<h4><a name = "tag_004_000_287">&nbsp;</a>supplementary group ID</h4>An attribute of a process used in determining file access permissions.
A process has up to
{NGROUPS_MAX}
supplementary group IDs in addition to the effective group ID.
The supplementary group IDs of a process are set to the
supplementary group IDs of the parent process when the process is created.
Whether a process' effective group ID
is included in or omitted from its list of
supplementary group IDs is unspecified.
<p>
<h4><a name = "tag_004_000_288">&nbsp;</a>suspended job</h4>A job that has received a SIGSTOP, SIGTSTP, SIGTTIN or SIGTTOU
signal that caused the process group to stop.
A suspended job is a background job, but a background job
is not necessarily a suspended job.
<p>
<h4><a name = "tag_004_000_289">&nbsp;</a>symbolic link</h4><xref type="11" name="GLsymlink"></xref>
A type of file that contains a pathname. The pathname is interpolated
into a pathname being resolved, during pathname resolution, to create a
new pathname when it is encountered.
<p>
<h4><a name = "tag_004_000_290">&nbsp;</a>synchronised I/O completion</h4>The state of an I/O operation that has either
been successfully transferred or diagnosed as unsuccessful.
<p>
<h4><a name = "tag_004_000_291">&nbsp;</a>synchronised I/O data integrity completion</h4><ul>
<p>
<li>
For read, when the operation has been completed or diagnosed if unsuccessful.
The read is complete only when an image of the data has been
successfully transferred to the requesting process.
If there were any pending write requests affecting the data to be read
at the time that the synchronised read operation was requested,
these write requests shall be
successfully transferred prior to reading the data.
<p>
<li>
For write, when the operation has been completed
or diagnosed if unsuccessful.
The write is complete only when
the data specified in the write request is
successfully transferred
and all file system information required to retrieve the data is
successfully transferred.
<p>
</ul>
<p>
File attributes that are not necessary for data retrieval
(access time, modification time, status change time)
need not be
successfully transferred
prior to returning to the calling process.
<p>
<h4><a name = "tag_004_000_292">&nbsp;</a>synchronised I/O file integrity completion</h4>Identical to a
synchronised I/O data integrity completion
with the addition that
all file attributes relative to the I/O operation
(including access time, modification time, status change time)
will be successfully transferred
prior to returning to the calling process.
<p>
<h4><a name = "tag_004_000_293">&nbsp;</a>synchronised I/O operation</h4>An I/O operation
performed on a file that provides the application assurance of
the integrity of its data and files.
<p>
<h4><a name = "tag_004_000_294">&nbsp;</a>synchronous I/O operation</h4>An I/O operation that causes the thread
requesting the I/O to be blocked from further use of the processor
until that I/O operation completes.
<p>
Note that a synchronous I/O operation does not imply
synchronised I/O data integrity completion
or synchronised I/O file integrity completion.
<p>
<h4><a name = "tag_004_000_295">&nbsp;</a>synchronously generated signal</h4>A signal that is attributable to a specific thread.
<p>
For example, a thread executing an illegal instruction
or touching invalid memory causes a synchronously generated signal.
Being synchronous is a property of how the signal was generated
and not a property of the signal number.
<p>
<h4><a name = "tag_004_000_296">&nbsp;</a>system</h4>An implementation of the XSI.
<p>
<h4><a name = "tag_004_000_297">&nbsp;</a>system crash</h4>An interval initiated by an unspecified
circumstance that causes all processes
(possibly other than special system processes)
to be terminated in an undefined manner,
after which any changes to the state and contents
of files created or written to
by an application prior to the interval are undefined,
except as required elsewhere in
this specification set.
<p>
<h4><a name = "tag_004_000_298">&nbsp;</a>system console</h4>An optional file that receives messages sent by
<i><a href="../xsh/fmtmsg.html">fmtmsg()</a></i>
when the MM_CONSOLE flag is set.
<p>
<h4><a name = "tag_004_000_299">&nbsp;</a>system documentation</h4>All documentation provided with an XSI-conformant implementation
except for the Conformance Statement Questionnaire (CSQ).
Electronically distributed documents for an XSI-conformant
implementation are considered part of the system documentation.
<p>
<h4><a name = "tag_004_000_300">&nbsp;</a>system process</h4>An implementation-dependent object,
other than a process executing an application, that has a process ID.
<p>
<h4><a name = "tag_004_000_301">&nbsp;</a>system scheduling priority</h4>A number used as advice to the system to alter process scheduling priorities.
Raising the value should give a process
additional preference when scheduling a process to run.
Lowering the value should reduce the preference and make a process
less likely to run.
Typically, a process with higher system scheduling
priority will run to completion more quickly than an equivalent process
with lower system scheduling priority.
A scheduling priority of zero
specifies the default policy of the system.
<p>
This definition
is not intended to
suggest that all processes in a system have priorities
that are comparable.
Scheduling policy extensions such
as adding real-time priorities make the notion of a single
underlying priority for all scheduling policies problematic.
Some systems may implement the features related to
<i><a href="../xcu/nice.html">nice</a></i>
to affect all processes on the system,
others to affect just the general time-sharing
activities implied by this specification set, and others
may have no effect at all.
Because of the use of &quot;implementation-dependent&quot; in
<i><a href="../xcu/nice.html">nice</a></i>
and
<i><a href="../xcu/renice.html">renice</a></i>,
a wide range of implementation strategies is possible.
<br>
<p>
<h4><a name = "tag_004_000_302">&nbsp;</a>system reboot</h4>An implementation-dependent
sequence of events that may result in the loss of transitory data;
that is, data that is not saved in permanent storage.
For example, message queues, shared memory, semaphores and processes.
<p>
<h4><a name = "tag_004_000_303">&nbsp;</a>tab character</h4>A character that in the output stream indicates
that printing or displaying should start at the
next horizontal tabulation position on the current line.
The
tab
is the character designated by
'\t'
in the C language.
If the current position is at or past the
last defined horizontal tabulation position,
the behaviour is unspecified.
It is unspecified whether this character
is the exact sequence transmitted to an output device
by the system to accomplish the tabulation.
<p>
<h4><a name = "tag_004_000_304">&nbsp;</a>terminal</h4>(Or <b>terminal device</b>.)
A character special file that obeys the specifications of the
general terminal interface as described in
<xref href=genterm><a href="termios.html#tag_008">
General Terminal Interface
</a></xref>.
<p>
<h4><a name = "tag_004_000_305">&nbsp;</a>text column</h4>A roughly rectangular block of
characters capable of being
laid out side-by-side next to other text columns
on an output page or terminal screen.
The widths of text columns are measured in column positions.
<p>
<h4><a name = "tag_004_000_306">&nbsp;</a>text file</h4>A file that contains characters organised into
one or more lines.
The lines must not contain NUL
characters and none can exceed
{LINE_MAX}
bytes in length, including the
newline character.
Although the XSI
does not distinguish between text files and binary files
(see the ISO&nbsp;C standard),
many utilities only produce predictable or
meaningful output when operating on text files.
The standard utilities
that have such restrictions always specify
<i>text files</i>
in their
<b>STDIN</b>
or
<b>INPUT FILES</b>
sections.
<p>
The term
<i>text file</i>
does not prevent the inclusion of control or other non-printable
characters (other than NUL).
Therefore, standard utilities that list text files
as inputs or outputs are either able to process the
special characters gracefully or they
explicitly describe their limitations
within their individual sections.
The only difference between text and binary files is that
text files have lines of less than
{LINE_MAX}
bytes, with no NUL characters, each terminated by a newline character.
The definition allows a file with a single
newline character, but not a totally empty file,
to be called a text file.
If a file ends with an incomplete line
it is not strictly a text file by this definition.
The newline character referred to in this specification set is not
some generic line separator,
but a single character; files created on systems
where they use
multiple characters for ends of lines are not portable
to all XSI-conformant systems without some translation process.
<p>
<h4><a name = "tag_004_000_307">&nbsp;</a>thread</h4>A single flow of control within a process.  Each thread
has its own thread ID, scheduling priority and policy,
<i>errno</i>
value, thread-specific key/value bindings,
and the required system resources to support a flow of control.
Anything whose address may be determined by a thread,
including but not limited to static variables, storage obtained via
<i><a href="../xsh/malloc.html">malloc()</a></i>,
directly addressable storage obtained through
implementation-supplied functions and
automatic variables, are accessible to all threads in the same process.
<p>
<h4><a name = "tag_004_000_308">&nbsp;</a>thread ID</h4>Each thread in a process
is uniquely identified during its lifetime by a value of type
<b>pthread_t</b>
called a thread ID.
<p>
<h4><a name = "tag_004_000_309">&nbsp;</a>thread list</h4><xref type="11" name="thread_list"></xref>
An ordered set of runnable processes
that all have the same ordinal value for their
priority.
<p>
The ordering of processes on the list is determined by a scheduling
policy or policies.  The set of thread lists includes all
runnable processes in the system.
<p>
<h4><a name = "tag_004_000_310">&nbsp;</a>thread-safe</h4>A function that may be safely invoked concurrently by multiple
threads.
Examples are any &quot;pure&quot; function,
a function which holds a mutex locked while it is accessing static storage,
or objects shared among threads.
<p>
<h4><a name = "tag_004_000_311">&nbsp;</a>thread-specific data key</h4>A process global handle of type
<b>pthread_key_t</b>
which is used for naming thread-specific data.
<p>
Although the same key value may be used by different threads,
the values bound to the key by
<i><a href="../xsh/pthread_setspecific.html">pthread_setspecific()</a></i>
and accessed by
<i><a href="../xsh/pthread_getspecific.html">pthread_getspecific()</a></i>
are maintained on a per-thread basis
and persist for the life of the calling thread.
<p>
<h4><a name = "tag_004_000_312">&nbsp;</a>tilde</h4>The character
"~".
<p>
<h4><a name = "tag_004_000_313">&nbsp;</a>timer</h4>A mechanism that can notify a thread when the time as measured by a
particular clock has reached or passed a specified value, or when a specified
amount of time has passed.
<p>
<h4><a name = "tag_004_000_314">&nbsp;</a>timer overrun</h4>A condition that occurs each time a timer, for which there is already an 
expiration signal queued to the process, expires.
<p>
<h4><a name = "tag_004_000_315">&nbsp;</a>token</h4>A sequence of characters that the shell considers as a
single unit when reading input, according to the rules in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_003"><b>Token Recognition</b>&nbsp;</a>.
A token is either an operator or a word.
<p>
<h4><a name = "tag_004_000_316">&nbsp;</a>upshifting</h4>The conversion of a lower-case character to its upper-case
representation.
<br>
<p>
<h4><a name = "tag_004_000_317">&nbsp;</a>user database</h4><xref type="11" name="userdb"></xref>
A system database of implementation-dependent format that
contains at least the following information for each user ID:
<ul>
<p>
<li>
User name
<p>
<li>
Numerical user ID
<p>
<li>
Initial numerical group ID
<p>
<li>
Initial working directory
<p>
<li>
Initial user program.
<p>
</ul>
<p>
The initial numerical group ID is used by the
<i><a href="../xcu/newgrp.html">newgrp</a></i>
utility.
Any other circumstances under which the initial values are
operative are implementation-dependent.
<p>
If the initial user program field is null, an
implementation-dependent program is used.
<p>
If the initial working directory field is null,
the interpretation of that field is
implementation-dependent.
<p>
<h4><a name = "tag_004_000_318">&nbsp;</a>user ID</h4><xref type="11" name="userid"></xref>
A non-negative integer
that is used to identify a system user.
When the identity of a user is associated with a
process, a user ID value is referred to as a
real user ID,
an effective user ID
or a saved set-user-ID.
<p>
<h4><a name = "tag_004_000_319">&nbsp;</a>user name</h4>A string that is used to identify a user, as described in
<xref href=userdb><a href="#tag_004_000_317">
user database
</a></xref>.
To be portable across
XSI-conformant systems, the value must be composed of characters
from the portable filename character set.
The hyphen should not be used as the first character
of a portable user name.
<p>
<h4><a name = "tag_004_000_320">&nbsp;</a>utility</h4>A program that can be called by name from a shell
to perform a specific task, or related set of tasks.
This program is either an
executable file, such as might be produced by a compiler or linker system
from computer source code,
or a file of shell source code, directly interpreted by the shell.
The program may have been produced by the user, provided by the
system implementor, or acquired from an independent distributor.
The term
<i>utility</i>
does not apply to the
special built-in utilities
provided as part of the XSI Shell Command Language; see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_014"><b>Special Built-in Utilities</b>&nbsp;</a>.
The system may implement certain utilities as shell functions (see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_005"><b>Function Definition Command</b>&nbsp;</a>) or built-in utilities,
but only an application
that is aware of the command search order described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001_001"><b>Command Search and Execution</b>&nbsp;</a> or of performance characteristics
can discern differences between the behaviour of such a function
or built-in utility and that of a true executable file.
<p>
<h4><a name = "tag_004_000_321">&nbsp;</a>variable</h4>In the shell, a named parameter.
See
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_005"><b>Parameters and Variables</b>&nbsp;</a>.
<br>
<p>
<h4><a name = "tag_004_000_322">&nbsp;</a>variable assignment</h4><xref type="11" name="varassign"></xref>
In the shell, a word consisting of the following parts:
<code>
<pre>
<i>varname=value</i>
</code>
</pre>
<p>
When used in a context where assignment is defined to occur (see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_009_001"><b>Simple Commands</b>&nbsp;</a>)
and at no other time,
the
<i>value</i>
(representing a word or field) will be assigned as the value of
the variable denoted by
<i>varname</i>.
The
<i>varname</i>
and
<i>value</i>
parts meet the requirements for a name and a word, respectively,
except that they are delimited by the embedded unquoted equals-sign in
addition to the delimiting described in
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_003"><b>Token Recognition</b>&nbsp;</a>.
In all cases, the variable will be created if it did not already exist.
If
<i>value</i>
is not specified, the variable will be given a null value.
<p>
An alternative form of variable assignment:
<code>
<pre>
<i>symbol=value</i>
</code>
</pre>
(where
<i>symbol</i>
is a valid word delimited by an equals-sign,
but not a valid name) produces unspecified results.
This form is used by the KornShell
<i>name</i>[<i>expression</i>]=<i>value</i>
syntax.
<br>
<p>
<h4><a name = "tag_004_000_323">&nbsp;</a>vertical-tab character</h4>A character that in the output stream indicates
that printing should start at the
next vertical tabulation position.
The
vertical-tab
is the character designated by
'\v'
in the C language.
If the current position is at or past the
last defined vertical tabulation position,
the behaviour is unspecified.
It is unspecified whether this character
is the exact sequence transmitted to an output device
by the system to accomplish the tabulation.
<p>
<h4><a name = "tag_004_000_324">&nbsp;</a>white space</h4><xref type="11" name="whitespace"></xref>
A sequence of one or more characters that belong to the
<b>space</b>
character class as defined via the LC_CTYPE
category in the current locale.
<p>
In the POSIX locale,
white space consists of one or more
blank characters
(space and tab characters),
newline characters,
carriage-return characters,
form-feed characters
and
vertical-tab characters.
<p>
<h4><a name = "tag_004_000_325">&nbsp;</a>wide-character code (C language)</h4>An integer value corresponding to
a single graphic symbol or control code.
See
<xref href=widechar><a href="charset.html#tag_001_003">
C Language Wide-character Codes
</a></xref>.
<p>
<h4><a name = "tag_004_000_326">&nbsp;</a>wide-character string</h4>A contiguous sequence of wide-character codes terminated by and
including the first null wide-character code.
<p>
<h4><a name = "tag_004_000_327">&nbsp;</a>word</h4><xref type="11" name="word"></xref>
In the shell,
a token other than an operator.
In some cases a word is also a portion of a word token:
in the various forms of parameter expansion
(see the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006_002"><b>Parameter Expansion</b>&nbsp;</a>),
such as ${<i>name</i>-<i>word</i>},
and variable assignment, such as
<i>name=word</i>,
the word is the portion of the token depicted by
<i>word</i>.
The concept of a word is no longer applicable following
word expansions  only fields remain; see
the <b>XCU</b> specification, <a href="../xcu/chap2.html#tag_001_006"><b>Word Expansions</b>&nbsp;</a>.
<p>
<h4><a name = "tag_004_000_328">&nbsp;</a>working directory</h4><xref type="11" name="workdir"></xref>
(Or <b>current working directory</b>.)
A directory, associated with a process,
that is used in pathname resolution for pathnames
that do not begin with a slash.
<p>
<h4><a name = "tag_004_000_329">&nbsp;</a>world-wide portability interface</h4>Functions for handling characters in a codeset-independent manner.
<p>
<h4><a name = "tag_004_000_330">&nbsp;</a>write</h4>To output characters to a file, such as standard output or standard error.
Unless otherwise stated, standard output is the default
output destination for all uses of the term
<i>write</i>.
See the distinction between
<i>display</i>
and
<i>write</i>
in
<xref href=display><a href="#tag_004_000_078">
display
</a></xref>.
<p>
<h4><a name = "tag_004_000_331">&nbsp;</a>XSI-conformant</h4>A system which allows an application to be built using a set of
services that are consistent across all systems that conform to
this specification set.
<p>
<h4><a name = "tag_004_000_332">&nbsp;</a>zombie process</h4>An inactive process that will be deleted at some later time when its
parent process executes
<i><a href="../xsh/wait.html">wait()</a></i>
or
<i><a href="../xsh/waitpid.html">waitpid()</a></i>.
<br>
<p>
<h4><a name = "tag_004_000_333">&nbsp;</a>[n, m] and [n, m)</h4>Notations denoting mathematical ranges.
The square brackets [ and ]
include the limit; the parentheses ( and ) exclude the limit; that is,
if
<i>x</i>
is in [0, 1], it can be from 0 to 1 inclusive, but if
<i>x</i>
is in
[0, 1), it can be from 0 up to but not including 1.
<br>
<p>
<h4><a name = "tag_004_000_334">&nbsp;</a>&plusmn;0</h4>The algebraic sign provides additional information about any variable that
has the value zero.  Although all precisions have distinct representations for
+0, -0, +Inf and -Inf, the signs are
significant in some circumstances, such
as division by zero, and not in others.
</blockquote><hr size=2 noshade>
<center><font size=2>
UNIX &reg; is a registered Trademark of The Open Group.<br>
Copyright &copy; 1997 The Open Group
<br> [ <a href="../index.html">Main Index</a> | <a href="../xshix.html">XSH</a> | <a href="../xcuix.html">XCU</a> | <a href="../xbdix.html">XBD</a> | <a href="../cursesix.html">XCURSES</a> | <a href="../xnsix.html">XNS</a> ]

</font></center><hr size=2 noshade>
</body></html>
